beeai-framework 0.1.15 → 0.1.16
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/react/prompts.d.cts +1 -1
- package/dist/agents/react/prompts.d.ts +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.cts +1 -1
- package/dist/agents/react/runners/deep-think/prompts.d.ts +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.cts +1 -1
- package/dist/agents/react/runners/deep-think/runner.d.ts +1 -1
- package/dist/agents/react/runners/default/runner.d.cts +1 -1
- package/dist/agents/react/runners/default/runner.d.ts +1 -1
- package/dist/agents/react/runners/granite/prompts.d.cts +1 -1
- package/dist/agents/react/runners/granite/prompts.d.ts +1 -1
- package/dist/agents/react/runners/granite/runner.d.cts +1 -1
- package/dist/agents/react/runners/granite/runner.d.ts +1 -1
- package/dist/agents/toolCalling/agent.cjs +1 -1
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.js +1 -1
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/memory/slidingMemory.d.cts +1 -1
- package/dist/memory/slidingMemory.d.ts +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -11
|
@@ -39,12 +39,12 @@ declare const ReActAgentSystemPrompt: PromptTemplate<z.ZodObject<{
|
|
|
39
39
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
40
40
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
41
|
}, "strip", z.ZodTypeAny, {
|
|
42
|
-
instructions: string;
|
|
43
42
|
tools: z.objectOutputType<{
|
|
44
43
|
name: z.ZodString;
|
|
45
44
|
description: z.ZodString;
|
|
46
45
|
schema: z.ZodString;
|
|
47
46
|
}, z.ZodTypeAny, "passthrough">[];
|
|
47
|
+
instructions: string;
|
|
48
48
|
createdAt?: string | null | undefined;
|
|
49
49
|
}, {
|
|
50
50
|
tools: z.objectInputType<{
|
|
@@ -39,12 +39,12 @@ declare const ReActAgentSystemPrompt: PromptTemplate<z.ZodObject<{
|
|
|
39
39
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
40
40
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
41
|
}, "strip", z.ZodTypeAny, {
|
|
42
|
-
instructions: string;
|
|
43
42
|
tools: z.objectOutputType<{
|
|
44
43
|
name: z.ZodString;
|
|
45
44
|
description: z.ZodString;
|
|
46
45
|
schema: z.ZodString;
|
|
47
46
|
}, z.ZodTypeAny, "passthrough">[];
|
|
47
|
+
instructions: string;
|
|
48
48
|
createdAt?: string | null | undefined;
|
|
49
49
|
}, {
|
|
50
50
|
tools: z.objectInputType<{
|
|
@@ -57,12 +57,12 @@ declare const DeepThinkReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
57
57
|
}, zod.ZodTypeAny, "passthrough">>, "many">;
|
|
58
58
|
createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
59
59
|
}, "strip", zod.ZodTypeAny, {
|
|
60
|
-
instructions: string;
|
|
61
60
|
tools: zod.objectOutputType<{
|
|
62
61
|
name: zod.ZodString;
|
|
63
62
|
description: zod.ZodString;
|
|
64
63
|
schema: zod.ZodString;
|
|
65
64
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
65
|
+
instructions: string;
|
|
66
66
|
createdAt?: string | null | undefined;
|
|
67
67
|
}, {
|
|
68
68
|
tools: zod.objectInputType<{
|
|
@@ -57,12 +57,12 @@ declare const DeepThinkReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
57
57
|
}, zod.ZodTypeAny, "passthrough">>, "many">;
|
|
58
58
|
createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
59
59
|
}, "strip", zod.ZodTypeAny, {
|
|
60
|
-
instructions: string;
|
|
61
60
|
tools: zod.objectOutputType<{
|
|
62
61
|
name: zod.ZodString;
|
|
63
62
|
description: zod.ZodString;
|
|
64
63
|
schema: zod.ZodString;
|
|
65
64
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
65
|
+
instructions: string;
|
|
66
66
|
createdAt?: string | null | undefined;
|
|
67
67
|
}, {
|
|
68
68
|
tools: zod.objectInputType<{
|
|
@@ -51,12 +51,12 @@ declare class DeepThinkRunner extends DefaultRunner {
|
|
|
51
51
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
52
52
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
53
53
|
}, "strip", z.ZodTypeAny, {
|
|
54
|
-
instructions: string;
|
|
55
54
|
tools: z.objectOutputType<{
|
|
56
55
|
name: z.ZodString;
|
|
57
56
|
description: z.ZodString;
|
|
58
57
|
schema: z.ZodString;
|
|
59
58
|
}, z.ZodTypeAny, "passthrough">[];
|
|
59
|
+
instructions: string;
|
|
60
60
|
createdAt?: string | null | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
tools: z.objectInputType<{
|
|
@@ -51,12 +51,12 @@ declare class DeepThinkRunner extends DefaultRunner {
|
|
|
51
51
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
52
52
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
53
53
|
}, "strip", z.ZodTypeAny, {
|
|
54
|
-
instructions: string;
|
|
55
54
|
tools: z.objectOutputType<{
|
|
56
55
|
name: z.ZodString;
|
|
57
56
|
description: z.ZodString;
|
|
58
57
|
schema: z.ZodString;
|
|
59
58
|
}, z.ZodTypeAny, "passthrough">[];
|
|
59
|
+
instructions: string;
|
|
60
60
|
createdAt?: string | null | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
tools: z.objectInputType<{
|
|
@@ -51,12 +51,12 @@ declare class DefaultRunner extends BaseRunner {
|
|
|
51
51
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
52
52
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
53
53
|
}, "strip", z.ZodTypeAny, {
|
|
54
|
-
instructions: string;
|
|
55
54
|
tools: z.objectOutputType<{
|
|
56
55
|
name: z.ZodString;
|
|
57
56
|
description: z.ZodString;
|
|
58
57
|
schema: z.ZodString;
|
|
59
58
|
}, z.ZodTypeAny, "passthrough">[];
|
|
59
|
+
instructions: string;
|
|
60
60
|
createdAt?: string | null | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
tools: z.objectInputType<{
|
|
@@ -51,12 +51,12 @@ declare class DefaultRunner extends BaseRunner {
|
|
|
51
51
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
52
52
|
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
53
53
|
}, "strip", z.ZodTypeAny, {
|
|
54
|
-
instructions: string;
|
|
55
54
|
tools: z.objectOutputType<{
|
|
56
55
|
name: z.ZodString;
|
|
57
56
|
description: z.ZodString;
|
|
58
57
|
schema: z.ZodString;
|
|
59
58
|
}, z.ZodTypeAny, "passthrough">[];
|
|
59
|
+
instructions: string;
|
|
60
60
|
createdAt?: string | null | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
tools: z.objectInputType<{
|
|
@@ -57,12 +57,12 @@ declare const GraniteReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
57
57
|
}, zod.ZodTypeAny, "passthrough">>, "many">;
|
|
58
58
|
createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
59
59
|
}, "strip", zod.ZodTypeAny, {
|
|
60
|
-
instructions: string;
|
|
61
60
|
tools: zod.objectOutputType<{
|
|
62
61
|
name: zod.ZodString;
|
|
63
62
|
description: zod.ZodString;
|
|
64
63
|
schema: zod.ZodString;
|
|
65
64
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
65
|
+
instructions: string;
|
|
66
66
|
createdAt?: string | null | undefined;
|
|
67
67
|
}, {
|
|
68
68
|
tools: zod.objectInputType<{
|
|
@@ -57,12 +57,12 @@ declare const GraniteReActAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
|
57
57
|
}, zod.ZodTypeAny, "passthrough">>, "many">;
|
|
58
58
|
createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
59
59
|
}, "strip", zod.ZodTypeAny, {
|
|
60
|
-
instructions: string;
|
|
61
60
|
tools: zod.objectOutputType<{
|
|
62
61
|
name: zod.ZodString;
|
|
63
62
|
description: zod.ZodString;
|
|
64
63
|
schema: zod.ZodString;
|
|
65
64
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
65
|
+
instructions: string;
|
|
66
66
|
createdAt?: string | null | undefined;
|
|
67
67
|
}, {
|
|
68
68
|
tools: zod.objectInputType<{
|
|
@@ -52,12 +52,12 @@ declare class GraniteRunner extends DefaultRunner {
|
|
|
52
52
|
}, zod.ZodTypeAny, "passthrough">>, "many">;
|
|
53
53
|
createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
54
54
|
}, "strip", zod.ZodTypeAny, {
|
|
55
|
-
instructions: string;
|
|
56
55
|
tools: zod.objectOutputType<{
|
|
57
56
|
name: zod.ZodString;
|
|
58
57
|
description: zod.ZodString;
|
|
59
58
|
schema: zod.ZodString;
|
|
60
59
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
60
|
+
instructions: string;
|
|
61
61
|
createdAt?: string | null | undefined;
|
|
62
62
|
}, {
|
|
63
63
|
tools: zod.objectInputType<{
|
|
@@ -52,12 +52,12 @@ declare class GraniteRunner extends DefaultRunner {
|
|
|
52
52
|
}, zod.ZodTypeAny, "passthrough">>, "many">;
|
|
53
53
|
createdAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
|
|
54
54
|
}, "strip", zod.ZodTypeAny, {
|
|
55
|
-
instructions: string;
|
|
56
55
|
tools: zod.objectOutputType<{
|
|
57
56
|
name: zod.ZodString;
|
|
58
57
|
description: zod.ZodString;
|
|
59
58
|
schema: zod.ZodString;
|
|
60
59
|
}, zod.ZodTypeAny, "passthrough">[];
|
|
60
|
+
instructions: string;
|
|
61
61
|
createdAt?: string | null | undefined;
|
|
62
62
|
}, {
|
|
63
63
|
tools: zod.objectInputType<{
|
|
@@ -81,7 +81,7 @@ class ToolCallingAgent extends base_cjs.BaseAgent {
|
|
|
81
81
|
description: "Sends the final answer to the user",
|
|
82
82
|
inputSchema: finalAnswerToolSchema,
|
|
83
83
|
handler: /* @__PURE__ */ __name(async (input2) => {
|
|
84
|
-
const result = usePlainResponse ? input2.response : JSON.stringify(input2
|
|
84
|
+
const result = usePlainResponse ? input2.response : JSON.stringify(input2);
|
|
85
85
|
state.result = new message_cjs.AssistantMessage(result);
|
|
86
86
|
return new base_cjs$1.StringToolOutput("Message has been sent");
|
|
87
87
|
}, "handler")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","constructor","input","Emitter","root","child","namespace","creator","saveIntermediateSteps","register","_run","options","run","tempMessageKey","execution","totalMaxRetries","omitUndefined","state","memory","UnconstrainedMemory","result","undefined","iteration","add","SystemMessage","templates","system","render","role","instructions","addMany","messages","prompt","userMessage","UserMessage","task","context","expectedOutput","isString","globalRetriesCounter","RetryCounter","AgentError","usePlainResponse","ZodSchema","finalAnswerToolSchema","z","object","response","string","describe","String","finalAnswerTool","DynamicTool","name","description","inputSchema","handler","JSON","stringify","AssistantMessage","StringToolOutput","tools","forceFinalAnswer","Infinity","emit","llm","create","slice","toolChoice","length","stream","toolCallMessages","getToolCalls","toolCall","tool","find","toolName","toolInput","args","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","getTextContent","isError","e","ToolError","use","explain","textMessages","getTextMessages","isEmpty","deleteMany","filter","msg","meta","push","reset","extraDescription","map","join","overrides","defaultTemplates","ToolCallingAgentSystemPrompt","ToolCallingAgentTaskPrompt","mapObj","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","enumerable"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool, DynamicTool, StringToolOutput, ToolError, ToolOutput } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport type {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentTemplates,\n ToolCallingAgentCallbacks,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunState,\n} from \"@/agents/toolCalling/types.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { AssistantMessage, SystemMessage, ToolMessage, UserMessage } from \"@/backend/message.js\";\nimport { isEmpty, isString } from \"remeda\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { mapObj, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n ToolCallingAgentSystemPrompt,\n ToolCallingAgentTaskPrompt,\n} from \"@/agents/toolCalling/prompts.js\";\nimport { z, ZodSchema } from \"zod\";\n\nexport type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (\n template: ToolCallingAgentTemplates[K],\n) => ToolCallingAgentTemplates[K];\n\nexport interface ToolCallingAgentInput {\n llm: ChatModel;\n memory: BaseMemory;\n tools: AnyTool[];\n meta?: Omit<AgentMeta, \"tools\">;\n templates?: Partial<{\n [K in keyof ToolCallingAgentTemplates]:\n | ToolCallingAgentTemplates[K]\n | ToolCallingAgentTemplateFactory<K>;\n }>;\n execution?: ToolCallingAgentExecutionConfig;\n saveIntermediateSteps?: boolean;\n}\n\nexport class ToolCallingAgent extends BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<ToolCallingAgentCallbacks>({\n namespace: [\"agent\", \"toolCalling\"],\n creator: this,\n });\n\n constructor(public readonly input: ToolCallingAgentInput) {\n super();\n this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: ToolCallingAgentRunInput,\n options: ToolCallingAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<ToolCallingAgentRunOutput> {\n const tempMessageKey = \"tempMessage\" as const;\n const execution = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 10,\n ...omitUndefined(this.input.execution ?? {}),\n ...omitUndefined(options.execution ?? {}),\n };\n\n const state: ToolCallingAgentRunState = {\n memory: new UnconstrainedMemory(),\n result: undefined,\n iteration: 0,\n };\n await state.memory.add(\n new SystemMessage(\n this.templates.system.render({\n role: undefined,\n instructions: undefined,\n }),\n ),\n );\n await state.memory.addMany(this.memory.messages);\n\n if (input.prompt) {\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: isString(input.expectedOutput) ? input.expectedOutput : undefined,\n }),\n );\n await state.memory.add(userMessage);\n }\n\n const globalRetriesCounter = new RetryCounter(execution.totalMaxRetries || 1, AgentError);\n\n const usePlainResponse = !input.expectedOutput || !(input.expectedOutput instanceof ZodSchema);\n const finalAnswerToolSchema = usePlainResponse\n ? z.object({\n response: z.string().describe(String(input.expectedOutput ?? \"\")),\n })\n : (input.expectedOutput as ZodSchema);\n\n const finalAnswerTool = new DynamicTool({\n name: \"final_answer\",\n description: \"Sends the final answer to the user\",\n inputSchema: finalAnswerToolSchema,\n handler: async (input) => {\n const result = usePlainResponse ? input.response : JSON.stringify(input.response);\n state.result = new AssistantMessage(result);\n return new StringToolOutput(\"Message has been sent\");\n },\n });\n\n const tools = [...this.input.tools, finalAnswerTool];\n let forceFinalAnswer = false;\n\n while (!state.result) {\n state.iteration++;\n if (state.iteration > (execution.totalMaxRetries ?? Infinity)) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${state.iteration} iterations.`,\n );\n }\n\n await run.emitter.emit(\"start\", { state });\n const response = await this.input.llm.create({\n messages: state.memory.messages.slice(),\n tools,\n toolChoice: forceFinalAnswer ? finalAnswerTool : tools.length > 1 ? \"required\" : tools[0],\n stream: false,\n });\n await state.memory.addMany(response.messages);\n\n const toolCallMessages = response.getToolCalls();\n for (const toolCall of toolCallMessages) {\n try {\n const tool = tools.find((tool) => tool.name === toolCall.toolName);\n if (!tool) {\n throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);\n }\n\n const toolInput: any = toolCall.args;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolResponse.getTextContent(),\n isError: false,\n }),\n );\n } catch (e) {\n if (e instanceof ToolError) {\n globalRetriesCounter.use(e);\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: e.explain(),\n isError: true,\n }),\n );\n } else {\n throw e;\n }\n }\n }\n\n // handle empty messages for some models\n const textMessages = response.getTextMessages();\n if (isEmpty(toolCallMessages) && isEmpty(textMessages)) {\n await state.memory.add(new AssistantMessage(\"\\n\", { [tempMessageKey]: true }));\n } else {\n await state.memory.deleteMany(\n state.memory.messages.filter((msg) => msg.meta[tempMessageKey]),\n );\n }\n\n // Fallback for providers that do not support structured outputs\n if (!isEmpty(textMessages) && isEmpty(toolCallMessages)) {\n forceFinalAnswer = true;\n tools.length = 0;\n tools.push(finalAnswerTool);\n }\n\n await run.emitter.emit(\"success\", { state });\n }\n\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(state.memory.messages.slice(1));\n } else {\n await this.memory.addMany(state.memory.messages.slice(-2));\n }\n return { memory: state.memory, result: state.result };\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools.slice();\n\n if (this.input.meta) {\n return { ...this.input.meta, tools };\n }\n\n return {\n name: \"ToolCalling\",\n tools,\n description: \"ToolCallingAgent that uses tools to accomplish the task.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n @Cache({ enumerable: false })\n protected get templates(): ToolCallingAgentTemplates {\n const overrides = this.input.templates ?? {};\n const defaultTemplates: ToolCallingAgentTemplates = {\n system: ToolCallingAgentSystemPrompt,\n task: ToolCallingAgentTaskPrompt,\n } as const;\n\n return mapObj(defaultTemplates)(\n (key, defaultTemplate: ToolCallingAgentTemplates[typeof key]) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n },\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory() {\n return this.input.memory;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","constructor","input","Emitter","root","child","namespace","creator","saveIntermediateSteps","register","_run","options","run","tempMessageKey","execution","totalMaxRetries","omitUndefined","state","memory","UnconstrainedMemory","result","undefined","iteration","add","SystemMessage","templates","system","render","role","instructions","addMany","messages","prompt","userMessage","UserMessage","task","context","expectedOutput","isString","globalRetriesCounter","RetryCounter","AgentError","usePlainResponse","ZodSchema","finalAnswerToolSchema","z","object","response","string","describe","String","finalAnswerTool","DynamicTool","name","description","inputSchema","handler","JSON","stringify","AssistantMessage","StringToolOutput","tools","forceFinalAnswer","Infinity","emit","llm","create","slice","toolChoice","length","stream","toolCallMessages","getToolCalls","toolCall","tool","find","toolName","toolInput","args","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","getTextContent","isError","e","ToolError","use","explain","textMessages","getTextMessages","isEmpty","deleteMany","filter","msg","meta","push","reset","extraDescription","map","join","overrides","defaultTemplates","ToolCallingAgentSystemPrompt","ToolCallingAgentTaskPrompt","mapObj","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","enumerable"],"mappings":"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","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool, DynamicTool, StringToolOutput, ToolError, ToolOutput } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport type {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentTemplates,\n ToolCallingAgentCallbacks,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunState,\n} from \"@/agents/toolCalling/types.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { AssistantMessage, SystemMessage, ToolMessage, UserMessage } from \"@/backend/message.js\";\nimport { isEmpty, isString } from \"remeda\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { mapObj, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n ToolCallingAgentSystemPrompt,\n ToolCallingAgentTaskPrompt,\n} from \"@/agents/toolCalling/prompts.js\";\nimport { z, ZodSchema } from \"zod\";\n\nexport type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (\n template: ToolCallingAgentTemplates[K],\n) => ToolCallingAgentTemplates[K];\n\nexport interface ToolCallingAgentInput {\n llm: ChatModel;\n memory: BaseMemory;\n tools: AnyTool[];\n meta?: Omit<AgentMeta, \"tools\">;\n templates?: Partial<{\n [K in keyof ToolCallingAgentTemplates]:\n | ToolCallingAgentTemplates[K]\n | ToolCallingAgentTemplateFactory<K>;\n }>;\n execution?: ToolCallingAgentExecutionConfig;\n saveIntermediateSteps?: boolean;\n}\n\nexport class ToolCallingAgent extends BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<ToolCallingAgentCallbacks>({\n namespace: [\"agent\", \"toolCalling\"],\n creator: this,\n });\n\n constructor(public readonly input: ToolCallingAgentInput) {\n super();\n this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: ToolCallingAgentRunInput,\n options: ToolCallingAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<ToolCallingAgentRunOutput> {\n const tempMessageKey = \"tempMessage\" as const;\n const execution = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 10,\n ...omitUndefined(this.input.execution ?? {}),\n ...omitUndefined(options.execution ?? {}),\n };\n\n const state: ToolCallingAgentRunState = {\n memory: new UnconstrainedMemory(),\n result: undefined,\n iteration: 0,\n };\n await state.memory.add(\n new SystemMessage(\n this.templates.system.render({\n role: undefined,\n instructions: undefined,\n }),\n ),\n );\n await state.memory.addMany(this.memory.messages);\n\n if (input.prompt) {\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: isString(input.expectedOutput) ? input.expectedOutput : undefined,\n }),\n );\n await state.memory.add(userMessage);\n }\n\n const globalRetriesCounter = new RetryCounter(execution.totalMaxRetries || 1, AgentError);\n\n const usePlainResponse = !input.expectedOutput || !(input.expectedOutput instanceof ZodSchema);\n const finalAnswerToolSchema = usePlainResponse\n ? z.object({\n response: z.string().describe(String(input.expectedOutput ?? \"\")),\n })\n : (input.expectedOutput as ZodSchema);\n\n const finalAnswerTool = new DynamicTool({\n name: \"final_answer\",\n description: \"Sends the final answer to the user\",\n inputSchema: finalAnswerToolSchema,\n handler: async (input) => {\n const result = usePlainResponse ? input.response : JSON.stringify(input);\n state.result = new AssistantMessage(result);\n return new StringToolOutput(\"Message has been sent\");\n },\n });\n\n const tools = [...this.input.tools, finalAnswerTool];\n let forceFinalAnswer = false;\n\n while (!state.result) {\n state.iteration++;\n if (state.iteration > (execution.totalMaxRetries ?? Infinity)) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${state.iteration} iterations.`,\n );\n }\n\n await run.emitter.emit(\"start\", { state });\n const response = await this.input.llm.create({\n messages: state.memory.messages.slice(),\n tools,\n toolChoice: forceFinalAnswer ? finalAnswerTool : tools.length > 1 ? \"required\" : tools[0],\n stream: false,\n });\n await state.memory.addMany(response.messages);\n\n const toolCallMessages = response.getToolCalls();\n for (const toolCall of toolCallMessages) {\n try {\n const tool = tools.find((tool) => tool.name === toolCall.toolName);\n if (!tool) {\n throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);\n }\n\n const toolInput: any = toolCall.args;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolResponse.getTextContent(),\n isError: false,\n }),\n );\n } catch (e) {\n if (e instanceof ToolError) {\n globalRetriesCounter.use(e);\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: e.explain(),\n isError: true,\n }),\n );\n } else {\n throw e;\n }\n }\n }\n\n // handle empty messages for some models\n const textMessages = response.getTextMessages();\n if (isEmpty(toolCallMessages) && isEmpty(textMessages)) {\n await state.memory.add(new AssistantMessage(\"\\n\", { [tempMessageKey]: true }));\n } else {\n await state.memory.deleteMany(\n state.memory.messages.filter((msg) => msg.meta[tempMessageKey]),\n );\n }\n\n // Fallback for providers that do not support structured outputs\n if (!isEmpty(textMessages) && isEmpty(toolCallMessages)) {\n forceFinalAnswer = true;\n tools.length = 0;\n tools.push(finalAnswerTool);\n }\n\n await run.emitter.emit(\"success\", { state });\n }\n\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(state.memory.messages.slice(1));\n } else {\n await this.memory.addMany(state.memory.messages.slice(-2));\n }\n return { memory: state.memory, result: state.result };\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools.slice();\n\n if (this.input.meta) {\n return { ...this.input.meta, tools };\n }\n\n return {\n name: \"ToolCalling\",\n tools,\n description: \"ToolCallingAgent that uses tools to accomplish the task.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n @Cache({ enumerable: false })\n protected get templates(): ToolCallingAgentTemplates {\n const overrides = this.input.templates ?? {};\n const defaultTemplates: ToolCallingAgentTemplates = {\n system: ToolCallingAgentSystemPrompt,\n task: ToolCallingAgentTaskPrompt,\n } as const;\n\n return mapObj(defaultTemplates)(\n (key, defaultTemplate: ToolCallingAgentTemplates[typeof key]) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n },\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory() {\n return this.input.memory;\n }\n}\n"]}
|
|
@@ -79,7 +79,7 @@ class ToolCallingAgent extends BaseAgent {
|
|
|
79
79
|
description: "Sends the final answer to the user",
|
|
80
80
|
inputSchema: finalAnswerToolSchema,
|
|
81
81
|
handler: /* @__PURE__ */ __name(async (input2) => {
|
|
82
|
-
const result = usePlainResponse ? input2.response : JSON.stringify(input2
|
|
82
|
+
const result = usePlainResponse ? input2.response : JSON.stringify(input2);
|
|
83
83
|
state.result = new AssistantMessage(result);
|
|
84
84
|
return new StringToolOutput("Message has been sent");
|
|
85
85
|
}, "handler")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","constructor","input","Emitter","root","child","namespace","creator","saveIntermediateSteps","register","_run","options","run","tempMessageKey","execution","totalMaxRetries","omitUndefined","state","memory","UnconstrainedMemory","result","undefined","iteration","add","SystemMessage","templates","system","render","role","instructions","addMany","messages","prompt","userMessage","UserMessage","task","context","expectedOutput","isString","globalRetriesCounter","RetryCounter","AgentError","usePlainResponse","ZodSchema","finalAnswerToolSchema","z","object","response","string","describe","String","finalAnswerTool","DynamicTool","name","description","inputSchema","handler","JSON","stringify","AssistantMessage","StringToolOutput","tools","forceFinalAnswer","Infinity","emit","llm","create","slice","toolChoice","length","stream","toolCallMessages","getToolCalls","toolCall","tool","find","toolName","toolInput","args","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","getTextContent","isError","e","ToolError","use","explain","textMessages","getTextMessages","isEmpty","deleteMany","filter","msg","meta","push","reset","extraDescription","map","join","overrides","defaultTemplates","ToolCallingAgentSystemPrompt","ToolCallingAgentTaskPrompt","mapObj","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","enumerable"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool, DynamicTool, StringToolOutput, ToolError, ToolOutput } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport type {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentTemplates,\n ToolCallingAgentCallbacks,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunState,\n} from \"@/agents/toolCalling/types.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { AssistantMessage, SystemMessage, ToolMessage, UserMessage } from \"@/backend/message.js\";\nimport { isEmpty, isString } from \"remeda\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { mapObj, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n ToolCallingAgentSystemPrompt,\n ToolCallingAgentTaskPrompt,\n} from \"@/agents/toolCalling/prompts.js\";\nimport { z, ZodSchema } from \"zod\";\n\nexport type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (\n template: ToolCallingAgentTemplates[K],\n) => ToolCallingAgentTemplates[K];\n\nexport interface ToolCallingAgentInput {\n llm: ChatModel;\n memory: BaseMemory;\n tools: AnyTool[];\n meta?: Omit<AgentMeta, \"tools\">;\n templates?: Partial<{\n [K in keyof ToolCallingAgentTemplates]:\n | ToolCallingAgentTemplates[K]\n | ToolCallingAgentTemplateFactory<K>;\n }>;\n execution?: ToolCallingAgentExecutionConfig;\n saveIntermediateSteps?: boolean;\n}\n\nexport class ToolCallingAgent extends BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<ToolCallingAgentCallbacks>({\n namespace: [\"agent\", \"toolCalling\"],\n creator: this,\n });\n\n constructor(public readonly input: ToolCallingAgentInput) {\n super();\n this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: ToolCallingAgentRunInput,\n options: ToolCallingAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<ToolCallingAgentRunOutput> {\n const tempMessageKey = \"tempMessage\" as const;\n const execution = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 10,\n ...omitUndefined(this.input.execution ?? {}),\n ...omitUndefined(options.execution ?? {}),\n };\n\n const state: ToolCallingAgentRunState = {\n memory: new UnconstrainedMemory(),\n result: undefined,\n iteration: 0,\n };\n await state.memory.add(\n new SystemMessage(\n this.templates.system.render({\n role: undefined,\n instructions: undefined,\n }),\n ),\n );\n await state.memory.addMany(this.memory.messages);\n\n if (input.prompt) {\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: isString(input.expectedOutput) ? input.expectedOutput : undefined,\n }),\n );\n await state.memory.add(userMessage);\n }\n\n const globalRetriesCounter = new RetryCounter(execution.totalMaxRetries || 1, AgentError);\n\n const usePlainResponse = !input.expectedOutput || !(input.expectedOutput instanceof ZodSchema);\n const finalAnswerToolSchema = usePlainResponse\n ? z.object({\n response: z.string().describe(String(input.expectedOutput ?? \"\")),\n })\n : (input.expectedOutput as ZodSchema);\n\n const finalAnswerTool = new DynamicTool({\n name: \"final_answer\",\n description: \"Sends the final answer to the user\",\n inputSchema: finalAnswerToolSchema,\n handler: async (input) => {\n const result = usePlainResponse ? input.response : JSON.stringify(input.response);\n state.result = new AssistantMessage(result);\n return new StringToolOutput(\"Message has been sent\");\n },\n });\n\n const tools = [...this.input.tools, finalAnswerTool];\n let forceFinalAnswer = false;\n\n while (!state.result) {\n state.iteration++;\n if (state.iteration > (execution.totalMaxRetries ?? Infinity)) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${state.iteration} iterations.`,\n );\n }\n\n await run.emitter.emit(\"start\", { state });\n const response = await this.input.llm.create({\n messages: state.memory.messages.slice(),\n tools,\n toolChoice: forceFinalAnswer ? finalAnswerTool : tools.length > 1 ? \"required\" : tools[0],\n stream: false,\n });\n await state.memory.addMany(response.messages);\n\n const toolCallMessages = response.getToolCalls();\n for (const toolCall of toolCallMessages) {\n try {\n const tool = tools.find((tool) => tool.name === toolCall.toolName);\n if (!tool) {\n throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);\n }\n\n const toolInput: any = toolCall.args;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolResponse.getTextContent(),\n isError: false,\n }),\n );\n } catch (e) {\n if (e instanceof ToolError) {\n globalRetriesCounter.use(e);\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: e.explain(),\n isError: true,\n }),\n );\n } else {\n throw e;\n }\n }\n }\n\n // handle empty messages for some models\n const textMessages = response.getTextMessages();\n if (isEmpty(toolCallMessages) && isEmpty(textMessages)) {\n await state.memory.add(new AssistantMessage(\"\\n\", { [tempMessageKey]: true }));\n } else {\n await state.memory.deleteMany(\n state.memory.messages.filter((msg) => msg.meta[tempMessageKey]),\n );\n }\n\n // Fallback for providers that do not support structured outputs\n if (!isEmpty(textMessages) && isEmpty(toolCallMessages)) {\n forceFinalAnswer = true;\n tools.length = 0;\n tools.push(finalAnswerTool);\n }\n\n await run.emitter.emit(\"success\", { state });\n }\n\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(state.memory.messages.slice(1));\n } else {\n await this.memory.addMany(state.memory.messages.slice(-2));\n }\n return { memory: state.memory, result: state.result };\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools.slice();\n\n if (this.input.meta) {\n return { ...this.input.meta, tools };\n }\n\n return {\n name: \"ToolCalling\",\n tools,\n description: \"ToolCallingAgent that uses tools to accomplish the task.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n @Cache({ enumerable: false })\n protected get templates(): ToolCallingAgentTemplates {\n const overrides = this.input.templates ?? {};\n const defaultTemplates: ToolCallingAgentTemplates = {\n system: ToolCallingAgentSystemPrompt,\n task: ToolCallingAgentTaskPrompt,\n } as const;\n\n return mapObj(defaultTemplates)(\n (key, defaultTemplate: ToolCallingAgentTemplates[typeof key]) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n },\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory() {\n return this.input.memory;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","constructor","input","Emitter","root","child","namespace","creator","saveIntermediateSteps","register","_run","options","run","tempMessageKey","execution","totalMaxRetries","omitUndefined","state","memory","UnconstrainedMemory","result","undefined","iteration","add","SystemMessage","templates","system","render","role","instructions","addMany","messages","prompt","userMessage","UserMessage","task","context","expectedOutput","isString","globalRetriesCounter","RetryCounter","AgentError","usePlainResponse","ZodSchema","finalAnswerToolSchema","z","object","response","string","describe","String","finalAnswerTool","DynamicTool","name","description","inputSchema","handler","JSON","stringify","AssistantMessage","StringToolOutput","tools","forceFinalAnswer","Infinity","emit","llm","create","slice","toolChoice","length","stream","toolCallMessages","getToolCalls","toolCall","tool","find","toolName","toolInput","args","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","getTextContent","isError","e","ToolError","use","explain","textMessages","getTextMessages","isEmpty","deleteMany","filter","msg","meta","push","reset","extraDescription","map","join","overrides","defaultTemplates","ToolCallingAgentSystemPrompt","ToolCallingAgentTaskPrompt","mapObj","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","enumerable"],"mappings":"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","file":"agent.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool, DynamicTool, StringToolOutput, ToolError, ToolOutput } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport type {\n ToolCallingAgentExecutionConfig,\n ToolCallingAgentTemplates,\n ToolCallingAgentCallbacks,\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOptions,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunState,\n} from \"@/agents/toolCalling/types.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { AssistantMessage, SystemMessage, ToolMessage, UserMessage } from \"@/backend/message.js\";\nimport { isEmpty, isString } from \"remeda\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { mapObj, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n ToolCallingAgentSystemPrompt,\n ToolCallingAgentTaskPrompt,\n} from \"@/agents/toolCalling/prompts.js\";\nimport { z, ZodSchema } from \"zod\";\n\nexport type ToolCallingAgentTemplateFactory<K extends keyof ToolCallingAgentTemplates> = (\n template: ToolCallingAgentTemplates[K],\n) => ToolCallingAgentTemplates[K];\n\nexport interface ToolCallingAgentInput {\n llm: ChatModel;\n memory: BaseMemory;\n tools: AnyTool[];\n meta?: Omit<AgentMeta, \"tools\">;\n templates?: Partial<{\n [K in keyof ToolCallingAgentTemplates]:\n | ToolCallingAgentTemplates[K]\n | ToolCallingAgentTemplateFactory<K>;\n }>;\n execution?: ToolCallingAgentExecutionConfig;\n saveIntermediateSteps?: boolean;\n}\n\nexport class ToolCallingAgent extends BaseAgent<\n ToolCallingAgentRunInput,\n ToolCallingAgentRunOutput,\n ToolCallingAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<ToolCallingAgentCallbacks>({\n namespace: [\"agent\", \"toolCalling\"],\n creator: this,\n });\n\n constructor(public readonly input: ToolCallingAgentInput) {\n super();\n this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: ToolCallingAgentRunInput,\n options: ToolCallingAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<ToolCallingAgentRunOutput> {\n const tempMessageKey = \"tempMessage\" as const;\n const execution = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 10,\n ...omitUndefined(this.input.execution ?? {}),\n ...omitUndefined(options.execution ?? {}),\n };\n\n const state: ToolCallingAgentRunState = {\n memory: new UnconstrainedMemory(),\n result: undefined,\n iteration: 0,\n };\n await state.memory.add(\n new SystemMessage(\n this.templates.system.render({\n role: undefined,\n instructions: undefined,\n }),\n ),\n );\n await state.memory.addMany(this.memory.messages);\n\n if (input.prompt) {\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: isString(input.expectedOutput) ? input.expectedOutput : undefined,\n }),\n );\n await state.memory.add(userMessage);\n }\n\n const globalRetriesCounter = new RetryCounter(execution.totalMaxRetries || 1, AgentError);\n\n const usePlainResponse = !input.expectedOutput || !(input.expectedOutput instanceof ZodSchema);\n const finalAnswerToolSchema = usePlainResponse\n ? z.object({\n response: z.string().describe(String(input.expectedOutput ?? \"\")),\n })\n : (input.expectedOutput as ZodSchema);\n\n const finalAnswerTool = new DynamicTool({\n name: \"final_answer\",\n description: \"Sends the final answer to the user\",\n inputSchema: finalAnswerToolSchema,\n handler: async (input) => {\n const result = usePlainResponse ? input.response : JSON.stringify(input);\n state.result = new AssistantMessage(result);\n return new StringToolOutput(\"Message has been sent\");\n },\n });\n\n const tools = [...this.input.tools, finalAnswerTool];\n let forceFinalAnswer = false;\n\n while (!state.result) {\n state.iteration++;\n if (state.iteration > (execution.totalMaxRetries ?? Infinity)) {\n throw new AgentError(\n `Agent was not able to resolve the task in ${state.iteration} iterations.`,\n );\n }\n\n await run.emitter.emit(\"start\", { state });\n const response = await this.input.llm.create({\n messages: state.memory.messages.slice(),\n tools,\n toolChoice: forceFinalAnswer ? finalAnswerTool : tools.length > 1 ? \"required\" : tools[0],\n stream: false,\n });\n await state.memory.addMany(response.messages);\n\n const toolCallMessages = response.getToolCalls();\n for (const toolCall of toolCallMessages) {\n try {\n const tool = tools.find((tool) => tool.name === toolCall.toolName);\n if (!tool) {\n throw new AgentError(`Tool ${toolCall.toolName} does not exist!`);\n }\n\n const toolInput: any = toolCall.args;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolResponse.getTextContent(),\n isError: false,\n }),\n );\n } catch (e) {\n if (e instanceof ToolError) {\n globalRetriesCounter.use(e);\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: e.explain(),\n isError: true,\n }),\n );\n } else {\n throw e;\n }\n }\n }\n\n // handle empty messages for some models\n const textMessages = response.getTextMessages();\n if (isEmpty(toolCallMessages) && isEmpty(textMessages)) {\n await state.memory.add(new AssistantMessage(\"\\n\", { [tempMessageKey]: true }));\n } else {\n await state.memory.deleteMany(\n state.memory.messages.filter((msg) => msg.meta[tempMessageKey]),\n );\n }\n\n // Fallback for providers that do not support structured outputs\n if (!isEmpty(textMessages) && isEmpty(toolCallMessages)) {\n forceFinalAnswer = true;\n tools.length = 0;\n tools.push(finalAnswerTool);\n }\n\n await run.emitter.emit(\"success\", { state });\n }\n\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(state.memory.messages.slice(1));\n } else {\n await this.memory.addMany(state.memory.messages.slice(-2));\n }\n return { memory: state.memory, result: state.result };\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools.slice();\n\n if (this.input.meta) {\n return { ...this.input.meta, tools };\n }\n\n return {\n name: \"ToolCalling\",\n tools,\n description: \"ToolCallingAgent that uses tools to accomplish the task.\",\n ...(tools.length > 0 && {\n extraDescription: [\n `Tools that I can use to accomplish given task.`,\n ...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`),\n ].join(\"\\n\"),\n }),\n };\n }\n\n @Cache({ enumerable: false })\n protected get templates(): ToolCallingAgentTemplates {\n const overrides = this.input.templates ?? {};\n const defaultTemplates: ToolCallingAgentTemplates = {\n system: ToolCallingAgentSystemPrompt,\n task: ToolCallingAgentTaskPrompt,\n } as const;\n\n return mapObj(defaultTemplates)(\n (key, defaultTemplate: ToolCallingAgentTemplates[typeof key]) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n },\n );\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory() {\n return this.input.memory;\n }\n}\n"]}
|
|
@@ -2,9 +2,9 @@ import { Message, MessageContentPart } from '../backend/message.cjs';
|
|
|
2
2
|
import { BaseMemory } from './base.cjs';
|
|
3
3
|
import { RequiredNested } from '../internals/types.cjs';
|
|
4
4
|
import '../internals/serializable.cjs';
|
|
5
|
+
import '../internals/helpers/guards.cjs';
|
|
5
6
|
import 'ai';
|
|
6
7
|
import '../errors.cjs';
|
|
7
|
-
import '../internals/helpers/guards.cjs';
|
|
8
8
|
|
|
9
9
|
interface Handlers {
|
|
10
10
|
removalSelector: (messages: Message[]) => Message | Message[];
|
|
@@ -2,9 +2,9 @@ import { Message, MessageContentPart } from '../backend/message.js';
|
|
|
2
2
|
import { BaseMemory } from './base.js';
|
|
3
3
|
import { RequiredNested } from '../internals/types.js';
|
|
4
4
|
import '../internals/serializable.js';
|
|
5
|
+
import '../internals/helpers/guards.js';
|
|
5
6
|
import 'ai';
|
|
6
7
|
import '../errors.js';
|
|
7
|
-
import '../internals/helpers/guards.js';
|
|
8
8
|
|
|
9
9
|
interface Handlers {
|
|
10
10
|
removalSelector: (messages: Message[]) => Message | Message[];
|
package/dist/version.cjs
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beeai-framework",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "BeeAI Framework - LLM Agent Framework",
|
|
6
6
|
"author": "BeeAI a Series of LF Projects, LLC",
|
|
@@ -85,8 +85,6 @@
|
|
|
85
85
|
},
|
|
86
86
|
"hooks": {
|
|
87
87
|
"before:init": [
|
|
88
|
-
"yarn docs:check",
|
|
89
|
-
"[ \"$RELEASE_SKIP_DOCS_LINKS\" = \"true\" ] && echo 'Skipping docs links check.' || yarn docs:links:check",
|
|
90
88
|
"yarn lint",
|
|
91
89
|
"yarn ts:check",
|
|
92
90
|
"[ \"$RELEASE_SKIP_TESTS\" = \"true\" ] && echo 'Skipping tests.' || yarn test:all"
|
|
@@ -95,7 +93,6 @@
|
|
|
95
93
|
"yarn build"
|
|
96
94
|
],
|
|
97
95
|
"before:release": [
|
|
98
|
-
"yarn docs:build && git add . --update",
|
|
99
96
|
"yarn lint:fix && yarn format:fix && git add . --update"
|
|
100
97
|
]
|
|
101
98
|
},
|
|
@@ -156,11 +153,6 @@
|
|
|
156
153
|
"ts:check": "tsc --noEmit && tsc -p tsconfig.examples.json --noEmit",
|
|
157
154
|
"start": "tsx --tsconfig tsconfig.examples.json",
|
|
158
155
|
"start:bee": "yarn start -- examples/agents/bee.ts",
|
|
159
|
-
"docs:build": "embedme --source-root=. docs/**/*.md && yarn lint:fix docs/ && yarn prettier --write docs/",
|
|
160
|
-
"docs:check": "embedme --source-root=. docs/**/*.md --verify",
|
|
161
|
-
"docs:links": "linkinator . --timeout=10000 --retry --markdown --directory-listing --skip node_modules --skip CHANGELOG.md --skip docs/CHANGELOG.md --skip docs/_sidebar.md --skip \"https://ai.meta.com/blog/meta-llama-3-1/\" --include",
|
|
162
|
-
"docs:links:check": "yarn docs:links docs/**/*.md",
|
|
163
|
-
"docs:watch": "docsify serve ./docs --open",
|
|
164
156
|
"lint": "yarn eslint",
|
|
165
157
|
"prepare": "../.githooks/install.sh",
|
|
166
158
|
"lint:fix": "yarn eslint --fix",
|
|
@@ -178,7 +170,7 @@
|
|
|
178
170
|
"release": "release-it",
|
|
179
171
|
"_ensure_env": "cp -n .env.template .env || true",
|
|
180
172
|
"git:commit-msg": "yarn commitlint --edit --",
|
|
181
|
-
"git:pre-commit": "yarn copyright:check && yarn
|
|
173
|
+
"git:pre-commit": "yarn copyright:check && yarn lint && yarn format && yarn ts:check && yarn run test:unit"
|
|
182
174
|
},
|
|
183
175
|
"dependencies": {
|
|
184
176
|
"@ai-zen/node-fetch-event-source": "^2.1.4",
|
|
@@ -319,7 +311,6 @@
|
|
|
319
311
|
"@types/object-hash": "^3.0.6",
|
|
320
312
|
"@types/turndown": "^5.0.5",
|
|
321
313
|
"@zilliz/milvus2-sdk-node": "^2.5.1",
|
|
322
|
-
"docsify-cli": "^4.4.4",
|
|
323
314
|
"dotenv": "^16.4.7",
|
|
324
315
|
"embedme": "^1.22.1",
|
|
325
316
|
"eslint": "^9.17.0",
|