beeai-framework 0.1.22 → 0.1.24
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/adapters/a2a/agents/agent.d.cts +2 -2
- package/dist/adapters/a2a/agents/agent.d.ts +2 -2
- package/dist/adapters/a2a/agents/events.d.cts +1 -1
- package/dist/adapters/a2a/agents/events.d.ts +1 -1
- package/dist/adapters/a2a/agents/types.d.cts +2 -2
- package/dist/adapters/a2a/agents/types.d.ts +2 -2
- package/dist/adapters/a2a/serve/agent_executor.d.cts +3 -3
- package/dist/adapters/a2a/serve/agent_executor.d.ts +3 -3
- package/dist/adapters/a2a/serve/server.d.cts +2 -2
- package/dist/adapters/a2a/serve/server.d.ts +2 -2
- package/dist/adapters/acp/agents/agent.d.cts +2 -2
- package/dist/adapters/acp/agents/agent.d.ts +2 -2
- package/dist/adapters/acp/agents/events.d.cts +1 -1
- package/dist/adapters/acp/agents/events.d.ts +1 -1
- package/dist/adapters/agentstack/agents/agent.d.cts +2 -2
- package/dist/adapters/agentstack/agents/agent.d.ts +2 -2
- package/dist/adapters/agentstack/agents/events.d.cts +1 -1
- package/dist/adapters/agentstack/agents/events.d.ts +1 -1
- package/dist/adapters/amazon-bedrock/backend/chat.d.cts +4 -4
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +4 -4
- package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +2 -2
- package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +2 -2
- package/dist/adapters/anthropic/backend/chat.d.cts +5 -5
- package/dist/adapters/anthropic/backend/chat.d.ts +5 -5
- package/dist/adapters/anthropic/backend/embedding.d.cts +2 -2
- package/dist/adapters/anthropic/backend/embedding.d.ts +2 -2
- package/dist/adapters/azure-openai/backend/chat.d.cts +4 -4
- package/dist/adapters/azure-openai/backend/chat.d.ts +4 -4
- package/dist/adapters/azure-openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/azure-openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/dummy/backend/chat.d.cts +5 -4
- package/dist/adapters/dummy/backend/chat.d.ts +5 -4
- package/dist/adapters/dummy/backend/embedding.d.cts +2 -2
- package/dist/adapters/dummy/backend/embedding.d.ts +2 -2
- package/dist/adapters/google-vertex/backend/chat.d.cts +4 -4
- package/dist/adapters/google-vertex/backend/chat.d.ts +4 -4
- package/dist/adapters/google-vertex/backend/embedding.d.cts +2 -2
- package/dist/adapters/google-vertex/backend/embedding.d.ts +2 -2
- package/dist/adapters/groq/backend/chat.d.cts +4 -4
- package/dist/adapters/groq/backend/chat.d.ts +4 -4
- package/dist/adapters/groq/backend/embedding.d.cts +2 -2
- package/dist/adapters/groq/backend/embedding.d.ts +2 -2
- package/dist/adapters/langchain/backend/chat.d.cts +5 -4
- package/dist/adapters/langchain/backend/chat.d.ts +5 -4
- package/dist/adapters/langchain/backend/embedding.d.cts +2 -2
- package/dist/adapters/langchain/backend/embedding.d.ts +2 -2
- package/dist/adapters/langchain/tools.d.cts +1 -1
- package/dist/adapters/langchain/tools.d.ts +1 -1
- package/dist/adapters/ollama/backend/chat.cjs +1 -2
- package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
- package/dist/adapters/ollama/backend/chat.d.cts +4 -5
- package/dist/adapters/ollama/backend/chat.d.ts +4 -5
- package/dist/adapters/ollama/backend/chat.js +1 -2
- package/dist/adapters/ollama/backend/chat.js.map +1 -1
- package/dist/adapters/ollama/backend/embedding.d.cts +2 -2
- package/dist/adapters/ollama/backend/embedding.d.ts +2 -2
- package/dist/adapters/openai/backend/chat.d.cts +4 -4
- package/dist/adapters/openai/backend/chat.d.ts +4 -4
- package/dist/adapters/openai/backend/embedding.d.cts +2 -2
- package/dist/adapters/openai/backend/embedding.d.ts +2 -2
- package/dist/adapters/vercel/backend/chat.cjs +77 -17
- package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
- package/dist/adapters/vercel/backend/chat.d.cts +5 -4
- package/dist/adapters/vercel/backend/chat.d.ts +5 -4
- package/dist/adapters/vercel/backend/chat.js +77 -17
- package/dist/adapters/vercel/backend/chat.js.map +1 -1
- package/dist/adapters/vercel/backend/embedding.d.cts +2 -2
- package/dist/adapters/vercel/backend/embedding.d.ts +2 -2
- package/dist/adapters/vercel/backend/utils.cjs +17 -0
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +5 -4
- package/dist/adapters/vercel/backend/utils.d.ts +5 -4
- package/dist/adapters/vercel/backend/utils.js +17 -1
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.cjs +40 -13
- package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +7 -6
- package/dist/adapters/watsonx/backend/chat.d.ts +7 -6
- package/dist/adapters/watsonx/backend/chat.js +40 -13
- package/dist/adapters/watsonx/backend/chat.js.map +1 -1
- package/dist/adapters/watsonx/backend/embedding.d.cts +2 -2
- package/dist/adapters/watsonx/backend/embedding.d.ts +2 -2
- package/dist/adapters/xai/backend/chat.d.cts +4 -4
- package/dist/adapters/xai/backend/chat.d.ts +4 -4
- package/dist/{agent-BMfyig7X.d.cts → agent-Cy4QtsN8.d.cts} +4 -4
- package/dist/{agent-Dxw8AGWb.d.ts → agent-DHLEPXEA.d.ts} +4 -4
- package/dist/agents/base.d.cts +2 -2
- package/dist/agents/base.d.ts +2 -2
- package/dist/agents/experimental/replan/agent.d.cts +3 -3
- package/dist/agents/experimental/replan/agent.d.ts +3 -3
- package/dist/agents/experimental/replan/prompts.d.cts +1 -1
- package/dist/agents/experimental/replan/prompts.d.ts +1 -1
- package/dist/agents/experimental/streamlit/agent.d.cts +3 -3
- package/dist/agents/experimental/streamlit/agent.d.ts +3 -3
- package/dist/agents/react/agent.d.cts +4 -4
- package/dist/agents/react/agent.d.ts +4 -4
- package/dist/agents/react/prompts.d.cts +1 -1
- package/dist/agents/react/prompts.d.ts +1 -1
- package/dist/agents/react/runners/base.d.cts +4 -4
- package/dist/agents/react/runners/base.d.ts +4 -4
- 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 +5 -5
- package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
- package/dist/agents/react/runners/default/runner.d.cts +6 -6
- package/dist/agents/react/runners/default/runner.d.ts +6 -6
- 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 +5 -5
- package/dist/agents/react/runners/granite/runner.d.ts +5 -5
- package/dist/agents/react/types.d.cts +2 -2
- package/dist/agents/react/types.d.ts +2 -2
- package/dist/agents/requirement/agent.cjs +1 -1
- package/dist/agents/requirement/agent.cjs.map +1 -1
- package/dist/agents/requirement/agent.d.cts +4 -4
- package/dist/agents/requirement/agent.d.ts +4 -4
- package/dist/agents/requirement/agent.js +1 -1
- package/dist/agents/requirement/agent.js.map +1 -1
- package/dist/agents/requirement/prompts.d.cts +2 -2
- package/dist/agents/requirement/prompts.d.ts +2 -2
- package/dist/agents/requirement/requirements/conditional.d.cts +4 -4
- package/dist/agents/requirement/requirements/conditional.d.ts +4 -4
- package/dist/agents/requirement/requirements/requirement.d.cts +4 -4
- package/dist/agents/requirement/requirements/requirement.d.ts +4 -4
- package/dist/agents/requirement/requirements/utils.d.cts +1 -1
- package/dist/agents/requirement/requirements/utils.d.ts +1 -1
- package/dist/agents/requirement/runner.cjs +31 -15
- package/dist/agents/requirement/runner.cjs.map +1 -1
- package/dist/agents/requirement/runner.d.cts +13 -15
- package/dist/agents/requirement/runner.d.ts +13 -15
- package/dist/agents/requirement/runner.js +31 -15
- package/dist/agents/requirement/runner.js.map +1 -1
- package/dist/agents/requirement/types.d.cts +4 -4
- package/dist/agents/requirement/types.d.ts +4 -4
- package/dist/agents/requirement/utils/llm.d.cts +4 -4
- package/dist/agents/requirement/utils/llm.d.ts +4 -4
- package/dist/agents/requirement/utils/tool.cjs +2 -1
- package/dist/agents/requirement/utils/tool.cjs.map +1 -1
- package/dist/agents/requirement/utils/tool.d.cts +4 -4
- package/dist/agents/requirement/utils/tool.d.ts +4 -4
- package/dist/agents/requirement/utils/tool.js +2 -1
- package/dist/agents/requirement/utils/tool.js.map +1 -1
- package/dist/agents/toolCalling/agent.cjs +4 -1
- package/dist/agents/toolCalling/agent.cjs.map +1 -1
- package/dist/agents/toolCalling/agent.d.cts +6 -3
- package/dist/agents/toolCalling/agent.d.ts +6 -3
- package/dist/agents/toolCalling/agent.js +5 -2
- package/dist/agents/toolCalling/agent.js.map +1 -1
- package/dist/agents/toolCalling/types.d.cts +1 -1
- package/dist/agents/toolCalling/types.d.ts +1 -1
- package/dist/agents/types.d.cts +2 -2
- package/dist/agents/types.d.ts +2 -2
- package/dist/backend/backend.d.cts +2 -2
- package/dist/backend/backend.d.ts +2 -2
- package/dist/backend/chat.cjs +125 -5
- package/dist/backend/chat.cjs.map +1 -1
- package/dist/backend/chat.d.cts +3 -3
- package/dist/backend/chat.d.ts +3 -3
- package/dist/backend/chat.js +127 -7
- package/dist/backend/chat.js.map +1 -1
- package/dist/backend/core.d.cts +3 -3
- package/dist/backend/core.d.ts +3 -3
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/message.cjs +20 -13
- package/dist/backend/message.cjs.map +1 -1
- package/dist/backend/message.d.cts +7 -3
- package/dist/backend/message.d.ts +7 -3
- package/dist/backend/message.js +20 -13
- package/dist/backend/message.js.map +1 -1
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/{base-BurRTBA7.d.ts → base-CyFx7BRL.d.ts} +2 -2
- package/dist/{base-v-PYIq5G.d.cts → base-XfWeXQ-S.d.cts} +2 -2
- package/dist/{chat-DB_cf15S.d.cts → chat-CC0s8z23.d.cts} +10 -9
- package/dist/{chat-BbCYMAdE.d.ts → chat-D8SVtw5Q.d.ts} +10 -9
- package/dist/context.d.cts +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/emitter/emitter.cjs +2 -1
- package/dist/emitter/emitter.cjs.map +1 -1
- package/dist/emitter/emitter.d.cts +1 -1
- package/dist/emitter/emitter.d.ts +1 -1
- package/dist/emitter/emitter.js +2 -1
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/types.d.cts +1 -1
- package/dist/emitter/types.d.ts +1 -1
- package/dist/{emitter-CN7I4uSV.d.ts → emitter-36-9MnvA.d.ts} +2 -2
- package/dist/{emitter-CGKd_-kK.d.cts → emitter-jN55XZZq.d.cts} +2 -2
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/internals/fetcher.d.cts +1 -1
- package/dist/internals/fetcher.d.ts +1 -1
- package/dist/internals/helpers/object.cjs +18 -0
- package/dist/internals/helpers/object.cjs.map +1 -1
- package/dist/internals/helpers/object.d.cts +2 -1
- package/dist/internals/helpers/object.d.ts +2 -1
- package/dist/internals/helpers/object.js +18 -1
- package/dist/internals/helpers/object.js.map +1 -1
- package/dist/memory/summarizeMemory.d.cts +2 -2
- package/dist/memory/summarizeMemory.d.ts +2 -2
- package/dist/middleware/streamToolCall.cjs +138 -0
- package/dist/middleware/streamToolCall.cjs.map +1 -0
- package/dist/middleware/streamToolCall.d.cts +96 -0
- package/dist/middleware/streamToolCall.d.ts +96 -0
- package/dist/middleware/streamToolCall.js +136 -0
- package/dist/middleware/streamToolCall.js.map +1 -0
- package/dist/middleware/trajectory.cjs +14 -5
- package/dist/middleware/trajectory.cjs.map +1 -1
- package/dist/middleware/trajectory.d.cts +1 -1
- package/dist/middleware/trajectory.d.ts +1 -1
- package/dist/middleware/trajectory.js +13 -4
- package/dist/middleware/trajectory.js.map +1 -1
- package/dist/parsers/linePrefix.d.cts +1 -1
- package/dist/parsers/linePrefix.d.ts +1 -1
- package/dist/tools/arxiv.d.cts +1 -1
- package/dist/tools/arxiv.d.ts +1 -1
- package/dist/tools/base.d.cts +1 -1
- package/dist/tools/base.d.ts +1 -1
- package/dist/tools/calculator.d.cts +1 -1
- package/dist/tools/calculator.d.ts +1 -1
- package/dist/tools/custom.d.cts +2 -2
- package/dist/tools/custom.d.ts +2 -2
- package/dist/tools/database/elasticsearch.d.cts +1 -1
- package/dist/tools/database/elasticsearch.d.ts +1 -1
- package/dist/tools/database/milvus.d.cts +1 -1
- package/dist/tools/database/milvus.d.ts +1 -1
- package/dist/tools/database/qdrant.d.cts +1 -1
- package/dist/tools/database/qdrant.d.ts +1 -1
- package/dist/tools/database/sql.d.cts +1 -1
- package/dist/tools/database/sql.d.ts +1 -1
- package/dist/tools/handoff.cjs +68 -0
- package/dist/tools/handoff.cjs.map +1 -0
- package/dist/tools/handoff.d.cts +47 -0
- package/dist/tools/handoff.d.ts +47 -0
- package/dist/tools/handoff.js +66 -0
- package/dist/tools/handoff.js.map +1 -0
- package/dist/tools/llm.d.cts +2 -2
- package/dist/tools/llm.d.ts +2 -2
- package/dist/tools/mcp.d.cts +1 -1
- package/dist/tools/mcp.d.ts +1 -1
- package/dist/tools/openapi.d.cts +1 -1
- package/dist/tools/openapi.d.ts +1 -1
- package/dist/tools/python/output.d.cts +1 -1
- package/dist/tools/python/output.d.ts +1 -1
- package/dist/tools/python/python.d.cts +2 -2
- package/dist/tools/python/python.d.ts +2 -2
- package/dist/tools/search/base.d.cts +1 -1
- package/dist/tools/search/base.d.ts +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.cts +1 -1
- package/dist/tools/search/duckDuckGoSearch.d.ts +1 -1
- package/dist/tools/search/googleSearch.d.cts +1 -1
- package/dist/tools/search/googleSearch.d.ts +1 -1
- package/dist/tools/search/searXNGSearch.d.cts +1 -1
- package/dist/tools/search/searXNGSearch.d.ts +1 -1
- package/dist/tools/search/wikipedia.d.cts +1 -1
- package/dist/tools/search/wikipedia.d.ts +1 -1
- package/dist/tools/similarity.d.cts +1 -1
- package/dist/tools/similarity.d.ts +1 -1
- package/dist/tools/think.d.cts +1 -1
- package/dist/tools/think.d.ts +1 -1
- package/dist/tools/weather/openMeteo.d.cts +1 -1
- package/dist/tools/weather/openMeteo.d.ts +1 -1
- package/dist/tools/web/webCrawler.d.cts +1 -1
- package/dist/tools/web/webCrawler.d.ts +1 -1
- package/dist/{types-Cx6f43du.d.cts → types-D9pn62yF.d.cts} +3 -3
- package/dist/{types-BXkkbABd.d.ts → types-Dyd4e1G6.d.ts} +3 -3
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/workflows/agent.d.cts +40 -40
- package/dist/workflows/agent.d.ts +40 -40
- package/dist/workflows/workflow.d.cts +1 -1
- package/dist/workflows/workflow.d.ts +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/utils/tool.ts"],"names":["runTool","tools","msg","context","result","tool","input","output","StringToolOutput","error","find","name","toolName","ToolError","run","toolCallMsg","e","FrameworkError","ensure","FinalAnswerToolSchema","z","object","response","string","describe","FinalAnswerTool","
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/utils/tool.ts"],"names":["runTool","tools","msg","context","result","tool","input","output","StringToolOutput","error","find","name","toolName","ToolError","run","toolCallMsg","Tool","contextKeys","Memory","state","memory","e","FrameworkError","ensure","FinalAnswerToolSchema","z","object","response","string","describe","FinalAnswerTool","description","instructions","customSchema","emitter","expectedOutput","undefined","ZodSchema","Emitter","root","child","namespace","creator","inputSchema","_run","_options","_ctx","answer","AssistantMessage","JSON","stringify"],"mappings":";;;;;;;;;;AAiCA,eAAsBA,OAAAA,CACpBC,KAAAA,EACAC,GAAAA,EACAC,OAAAA,EAA4B;AAE5B,EAAA,MAAMC,MAAAA,GAA+B;AACnCF,IAAAA,GAAAA;IACAG,IAAAA,EAAM,IAAA;AACNC,IAAAA,KAAAA,EAAOJ,GAAAA,CAAII,KAAAA;IACXC,MAAAA,EAAQ,IAAIC,0BAAiB,EAAA,CAAA;IAC7BC,KAAAA,EAAO;AACT,GAAA;AAEA,EAAA,IAAI;AACFL,IAAAA,MAAAA,CAAOC,IAAAA,GAAOJ,MAAMS,IAAAA,CAAK,CAACL,SAASA,IAAAA,CAAKM,IAAAA,KAAST,GAAAA,CAAIU,QAAQ,CAAA,IAAK,IAAA;AAClE,IAAA,IAAI,CAACR,OAAOC,IAAAA,EAAM;AAChB,MAAA,MAAM,IAAIQ,kBAAAA,CAAU,CAAA,MAAA,EAASX,GAAAA,CAAIU,QAAQ,CAAA,iBAAA,CAAmB,CAAA;AAC9D;AAEAR,IAAAA,MAAAA,CAAOG,MAAAA,GAAS,MAAMH,MAAAA,CAAOC,IAAAA,CAAKS,IAAIV,MAAAA,CAAOE,KAAK,EAAEH,OAAAA,CAAQ;MAC1D,GAAGA,OAAAA;MACHY,WAAAA,EAAab,GAAAA;AACb,MAAA,CAACc,aAAAA,CAAKC,WAAAA,CAAYC,MAAM,GAAGf,QAAQgB,KAAAA,CAAMC;KAC3C,CAAA;AACF,GAAA,CAAA,OAASC,CAAAA,EAAG;AACV,IAAA,IAAIA,aAAaR,kBAAAA,EAAW;AAC1BT,MAAAA,MAAAA,CAAOK,KAAAA,GAAQa,yBAAAA,CAAeC,MAAAA,CAAOF,CAAAA,CAAAA;KACvC,MAAO;AACL,MAAA,MAAMA,CAAAA;AACR;AACF;AAEA,EAAA,OAAOjB,MAAAA;AACT;AAjCsBJ,MAAAA,CAAAA,OAAAA,EAAAA,SAAAA,CAAAA;AAoCtB,MAAMwB,qBAAAA,GAAwBC,MAAEC,MAAAA,CAAO;AACrCC,EAAAA,QAAAA,EAAUF,KAAAA,CAAEG,MAAAA,EAAM,CAAGC,QAAAA,CAAS,8BAAA;AAChC,CAAA,CAAA;AAKO,MAAMC,wBAAwBd,aAAAA,CAAAA;EA5ErC;;;EA6EkBL,IAAAA,GAAO,cAAA;EACPoB,WAAAA,GAAc,oCAAA;AACvBC,EAAAA,YAAAA;AACAC,EAAAA,YAAAA;AACSC,EAAAA,OAAAA;AAENC,EAAAA,cAAAA;AACAhB,EAAAA,KAAAA;AAEV,EAAA,WAAA,CAAYgB,gBAA2ChB,KAAAA,EAAiC;AACtF,IAAA,KAAA,EAAK;AACL,IAAA,IAAA,CAAKgB,cAAAA,GAAiBA,cAAAA;AACtB,IAAA,IAAA,CAAKhB,KAAAA,GAAQA,KAAAA;AACb,IAAA,IAAA,CAAKa,YAAAA,GAAe,OAAOG,cAAAA,KAAmB,QAAA,GAAWA,cAAAA,GAAiBC,MAAAA;AAC1E,IAAA,IAAA,CAAKH,eAAeE,cAAAA,YAA0BE,aAAAA;AAC9C,IAAA,IAAA,CAAKH,OAAAA,GAAUI,mBAAAA,CAAQC,IAAAA,CAAKC,KAAAA,CAAM;MAChCC,SAAAA,EAAW;AAAC,QAAA,MAAA;AAAQ,QAAA;;MACpBC,OAAAA,EAAS;KACX,CAAA;AACF;EAEAC,WAAAA,GAAyB;AACvB,IAAA,MAAMR,iBAAiB,IAAA,CAAKA,cAAAA;AAE5B,IAAA,IAAI,CAACA,cAAAA,EAAgB;AACnB,MAAA,OAAOX,qBAAAA;AACT,KAAA,MAAA,IAAWW,0BAA0BE,aAAAA,EAAW;AAC9C,MAAA,OAAOF,cAAAA;KACT,MAAA,IAAW,OAAOA,mBAAmB,QAAA,EAAU;AAC7C,MAAA,OAAOV,MAAEC,MAAAA,CAAO;AACdC,QAAAA,QAAAA,EAAUF,KAAAA,CAAEG,MAAAA,EAAM,CAAGC,QAAAA,CAASM,cAAAA;OAChC,CAAA;KACF,MAAO;AACL,MAAA,OAAOX,qBAAAA;AACT;AACF;EAEA,MAAMoB,IAAAA,CACJtC,KAAAA,EACAuC,QAAAA,EACAC,IAAAA,EAC2B;AAC3B,IAAA,IAAA,CAAK3B,MAAMf,MAAAA,GAASE,KAAAA;AAEpB,IAAA,IAAI,IAAA,CAAK6B,0BAA0BE,aAAAA,EAAW;AAE5C,MAAA,IAAA,CAAKlB,MAAM4B,MAAAA,GAAS,IAAIC,6BAAiBC,IAAAA,CAAKC,SAAAA,CAAU5C,KAAAA,CAAAA,CAAAA;KAC1D,MAAO;AAEL,MAAA,IAAA,CAAKa,KAAAA,CAAM4B,MAAAA,GAAS,IAAIC,4BAAAA,CAAiB1C,MAAMqB,QAAQ,CAAA;AACzD;AAEA,IAAA,OAAO,IAAInB,0BAAiB,uBAAA,CAAA;AAC9B;AACF","file":"tool.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AnyTool,\n BaseToolRunOptions,\n StringToolOutput,\n Tool,\n ToolError,\n ToolOutput,\n} from \"@/tools/base.js\";\nimport { ToolCallPart } from \"ai\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { z, ZodSchema } from \"zod\";\nimport { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { AssistantMessage } from \"@/backend/message.js\";\nimport { RunContext } from \"@/context.js\";\n\n// Tool invocation result\nexport interface ToolInvocationResult {\n msg: ToolCallPart;\n tool: AnyTool | null;\n input: unknown;\n output: ToolOutput;\n error: FrameworkError | null;\n}\n\n/**\n * Run a single tool with error handling\n */\nexport async function runTool(\n tools: AnyTool[],\n msg: ToolCallPart,\n context: Record<string, any>,\n): Promise<ToolInvocationResult> {\n const result: ToolInvocationResult = {\n msg,\n tool: null,\n input: msg.input,\n output: new StringToolOutput(\"\"),\n error: null,\n };\n\n try {\n result.tool = tools.find((tool) => tool.name === msg.toolName) || null;\n if (!result.tool) {\n throw new ToolError(`Tool '${msg.toolName}' does not exist!`);\n }\n\n result.output = await result.tool.run(result.input).context({\n ...context,\n toolCallMsg: msg,\n [Tool.contextKeys.Memory]: context.state.memory,\n });\n } catch (e) {\n if (e instanceof ToolError) {\n result.error = FrameworkError.ensure(e);\n } else {\n throw e;\n }\n }\n\n return result;\n}\n\n// Final answer tool schema\nconst FinalAnswerToolSchema = z.object({\n response: z.string().describe(\"The final answer to the user\"),\n});\n\n/**\n * Special tool for capturing final answers\n */\nexport class FinalAnswerTool extends Tool {\n public readonly name = \"final_answer\";\n public readonly description = \"Sends the final answer to the user\";\n public instructions?: string;\n public customSchema: boolean;\n public readonly emitter: Emitter<any>;\n\n protected expectedOutput: string | ZodSchema | null;\n protected state: RequirementAgentRunState;\n\n constructor(expectedOutput: string | ZodSchema | null, state: RequirementAgentRunState) {\n super();\n this.expectedOutput = expectedOutput;\n this.state = state;\n this.instructions = typeof expectedOutput === \"string\" ? expectedOutput : undefined;\n this.customSchema = expectedOutput instanceof ZodSchema;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"final_answer\"],\n creator: this,\n });\n }\n\n inputSchema(): ZodSchema {\n const expectedOutput = this.expectedOutput;\n\n if (!expectedOutput) {\n return FinalAnswerToolSchema;\n } else if (expectedOutput instanceof ZodSchema) {\n return expectedOutput;\n } else if (typeof expectedOutput === \"string\") {\n return z.object({\n response: z.string().describe(expectedOutput),\n });\n } else {\n return FinalAnswerToolSchema;\n }\n }\n\n async _run(\n input: any,\n _options: BaseToolRunOptions,\n _ctx: RunContext<typeof this>,\n ): Promise<StringToolOutput> {\n this.state.result = input;\n\n if (this.expectedOutput instanceof ZodSchema) {\n // For custom schemas, serialize the entire input\n this.state.answer = new AssistantMessage(JSON.stringify(input));\n } else {\n // For string schemas, use the response field\n this.state.answer = new AssistantMessage(input.response);\n }\n\n return new StringToolOutput(\"Message has been sent\");\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '../../../tools/base.cjs';
|
|
2
2
|
import 'ai';
|
|
3
3
|
import '../../../errors.cjs';
|
|
4
|
-
import '../../../emitter-
|
|
4
|
+
import '../../../emitter-jN55XZZq.cjs';
|
|
5
5
|
import 'zod';
|
|
6
|
-
export { F as FinalAnswerTool, T as ToolInvocationResult, r as runTool } from '../../../types-
|
|
6
|
+
export { F as FinalAnswerTool, T as ToolInvocationResult, r as runTool } from '../../../types-D9pn62yF.cjs';
|
|
7
7
|
import '../../../context.cjs';
|
|
8
8
|
import 'ajv';
|
|
9
9
|
import '../../../internals/serializable.cjs';
|
|
@@ -17,8 +17,8 @@ import '../../../internals/helpers/promise.cjs';
|
|
|
17
17
|
import '../../../memory/base.cjs';
|
|
18
18
|
import '../../../backend/message.cjs';
|
|
19
19
|
import '../../../template.cjs';
|
|
20
|
-
import '../../../chat-
|
|
20
|
+
import '../../../chat-CC0s8z23.cjs';
|
|
21
21
|
import '../../../backend/constants.cjs';
|
|
22
22
|
import '../../../logger/logger.cjs';
|
|
23
23
|
import 'pino';
|
|
24
|
-
import '../../../base-
|
|
24
|
+
import '../../../base-XfWeXQ-S.cjs';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '../../../tools/base.js';
|
|
2
2
|
import 'ai';
|
|
3
3
|
import '../../../errors.js';
|
|
4
|
-
import '../../../emitter-
|
|
4
|
+
import '../../../emitter-36-9MnvA.js';
|
|
5
5
|
import 'zod';
|
|
6
|
-
export { F as FinalAnswerTool, T as ToolInvocationResult, r as runTool } from '../../../types-
|
|
6
|
+
export { F as FinalAnswerTool, T as ToolInvocationResult, r as runTool } from '../../../types-Dyd4e1G6.js';
|
|
7
7
|
import '../../../context.js';
|
|
8
8
|
import 'ajv';
|
|
9
9
|
import '../../../internals/serializable.js';
|
|
@@ -17,8 +17,8 @@ import '../../../internals/helpers/promise.js';
|
|
|
17
17
|
import '../../../memory/base.js';
|
|
18
18
|
import '../../../backend/message.js';
|
|
19
19
|
import '../../../template.js';
|
|
20
|
-
import '../../../chat-
|
|
20
|
+
import '../../../chat-D8SVtw5Q.js';
|
|
21
21
|
import '../../../backend/constants.js';
|
|
22
22
|
import '../../../logger/logger.js';
|
|
23
23
|
import 'pino';
|
|
24
|
-
import '../../../base-
|
|
24
|
+
import '../../../base-CyFx7BRL.js';
|
|
@@ -21,7 +21,8 @@ async function runTool(tools, msg, context) {
|
|
|
21
21
|
}
|
|
22
22
|
result.output = await result.tool.run(result.input).context({
|
|
23
23
|
...context,
|
|
24
|
-
toolCallMsg: msg
|
|
24
|
+
toolCallMsg: msg,
|
|
25
|
+
[Tool.contextKeys.Memory]: context.state.memory
|
|
25
26
|
});
|
|
26
27
|
} catch (e) {
|
|
27
28
|
if (e instanceof ToolError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/agents/requirement/utils/tool.ts"],"names":["runTool","tools","msg","context","result","tool","input","output","StringToolOutput","error","find","name","toolName","ToolError","run","toolCallMsg","e","FrameworkError","ensure","FinalAnswerToolSchema","z","object","response","string","describe","FinalAnswerTool","
|
|
1
|
+
{"version":3,"sources":["../../../../src/agents/requirement/utils/tool.ts"],"names":["runTool","tools","msg","context","result","tool","input","output","StringToolOutput","error","find","name","toolName","ToolError","run","toolCallMsg","Tool","contextKeys","Memory","state","memory","e","FrameworkError","ensure","FinalAnswerToolSchema","z","object","response","string","describe","FinalAnswerTool","description","instructions","customSchema","emitter","expectedOutput","undefined","ZodSchema","Emitter","root","child","namespace","creator","inputSchema","_run","_options","_ctx","answer","AssistantMessage","JSON","stringify"],"mappings":"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","file":"tool.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AnyTool,\n BaseToolRunOptions,\n StringToolOutput,\n Tool,\n ToolError,\n ToolOutput,\n} from \"@/tools/base.js\";\nimport { ToolCallPart } from \"ai\";\nimport { FrameworkError } from \"@/errors.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { z, ZodSchema } from \"zod\";\nimport { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { AssistantMessage } from \"@/backend/message.js\";\nimport { RunContext } from \"@/context.js\";\n\n// Tool invocation result\nexport interface ToolInvocationResult {\n msg: ToolCallPart;\n tool: AnyTool | null;\n input: unknown;\n output: ToolOutput;\n error: FrameworkError | null;\n}\n\n/**\n * Run a single tool with error handling\n */\nexport async function runTool(\n tools: AnyTool[],\n msg: ToolCallPart,\n context: Record<string, any>,\n): Promise<ToolInvocationResult> {\n const result: ToolInvocationResult = {\n msg,\n tool: null,\n input: msg.input,\n output: new StringToolOutput(\"\"),\n error: null,\n };\n\n try {\n result.tool = tools.find((tool) => tool.name === msg.toolName) || null;\n if (!result.tool) {\n throw new ToolError(`Tool '${msg.toolName}' does not exist!`);\n }\n\n result.output = await result.tool.run(result.input).context({\n ...context,\n toolCallMsg: msg,\n [Tool.contextKeys.Memory]: context.state.memory,\n });\n } catch (e) {\n if (e instanceof ToolError) {\n result.error = FrameworkError.ensure(e);\n } else {\n throw e;\n }\n }\n\n return result;\n}\n\n// Final answer tool schema\nconst FinalAnswerToolSchema = z.object({\n response: z.string().describe(\"The final answer to the user\"),\n});\n\n/**\n * Special tool for capturing final answers\n */\nexport class FinalAnswerTool extends Tool {\n public readonly name = \"final_answer\";\n public readonly description = \"Sends the final answer to the user\";\n public instructions?: string;\n public customSchema: boolean;\n public readonly emitter: Emitter<any>;\n\n protected expectedOutput: string | ZodSchema | null;\n protected state: RequirementAgentRunState;\n\n constructor(expectedOutput: string | ZodSchema | null, state: RequirementAgentRunState) {\n super();\n this.expectedOutput = expectedOutput;\n this.state = state;\n this.instructions = typeof expectedOutput === \"string\" ? expectedOutput : undefined;\n this.customSchema = expectedOutput instanceof ZodSchema;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"final_answer\"],\n creator: this,\n });\n }\n\n inputSchema(): ZodSchema {\n const expectedOutput = this.expectedOutput;\n\n if (!expectedOutput) {\n return FinalAnswerToolSchema;\n } else if (expectedOutput instanceof ZodSchema) {\n return expectedOutput;\n } else if (typeof expectedOutput === \"string\") {\n return z.object({\n response: z.string().describe(expectedOutput),\n });\n } else {\n return FinalAnswerToolSchema;\n }\n }\n\n async _run(\n input: any,\n _options: BaseToolRunOptions,\n _ctx: RunContext<typeof this>,\n ): Promise<StringToolOutput> {\n this.state.result = input;\n\n if (this.expectedOutput instanceof ZodSchema) {\n // For custom schemas, serialize the entire input\n this.state.answer = new AssistantMessage(JSON.stringify(input));\n } else {\n // For string schemas, use the response field\n this.state.answer = new AssistantMessage(input.response);\n }\n\n return new StringToolOutput(\"Message has been sent\");\n }\n}\n"]}
|
|
@@ -13,6 +13,7 @@ var decoratorCache_cjs = require('../../cache/decoratorCache.cjs');
|
|
|
13
13
|
var template_cjs = require('../../template.cjs');
|
|
14
14
|
var prompts_cjs = require('./prompts.cjs');
|
|
15
15
|
var zod = require('zod');
|
|
16
|
+
var logger_cjs = require('../../logger/logger.cjs');
|
|
16
17
|
|
|
17
18
|
var __defProp = Object.defineProperty;
|
|
18
19
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
@@ -42,6 +43,7 @@ class ToolCallingAgent extends base_cjs.BaseAgent {
|
|
|
42
43
|
constructor(input) {
|
|
43
44
|
super(), this.input = input;
|
|
44
45
|
this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;
|
|
46
|
+
logger_cjs.Logger.root.warn("The ToolCallingAgent is deprecated and will be removed soon. Use RequirementAgent instead.");
|
|
45
47
|
}
|
|
46
48
|
static {
|
|
47
49
|
this.register();
|
|
@@ -116,7 +118,8 @@ class ToolCallingAgent extends base_cjs.BaseAgent {
|
|
|
116
118
|
const toolInput = toolCall.input;
|
|
117
119
|
const toolResponse = await tool.run(toolInput).context({
|
|
118
120
|
state,
|
|
119
|
-
toolCallMsg: toolCall
|
|
121
|
+
toolCallMsg: toolCall,
|
|
122
|
+
[base_cjs$1.Tool.contextKeys.Memory]: this.memory
|
|
120
123
|
});
|
|
121
124
|
await state.memory.add(new message_cjs.ToolMessage({
|
|
122
125
|
type: "tool-result",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/agents/toolCalling/agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","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","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","output","value","getTextContent","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 * SPDX-License-Identifier: Apache-2.0\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.input;\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 output: { type: \"text\", value: toolResponse.getTextContent() },\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 output: { type: \"error-text\", value: e.explain() },\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":["../../../src/agents/toolCalling/agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","saveIntermediateSteps","Logger","warn","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","toolResponse","toolCallMsg","Tool","contextKeys","Memory","ToolMessage","type","toolCallId","output","value","getTextContent","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEO,MAAMA,yBAAyBC,kBAAAA,CAAAA;AAAAA,EAAAA;;;;EAKpBC,OAAAA,GAAUC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAiC;IACtEC,SAAAA,EAAW;AAAC,MAAA,OAAA;AAAS,MAAA;;IACrBC,OAAAA,EAAS;GACX,CAAA;AAEA,EAAA,WAAA,CAA4BC,KAAAA,EAA8B;AACxD,IAAA,KAAA,EAAK,EAAA,KADqBA,KAAAA,GAAAA,KAAAA;AAE1B,IAAA,IAAA,CAAKA,KAAAA,CAAMC,qBAAAA,GAAwB,IAAA,CAAKD,KAAAA,CAAMC,qBAAAA,IAAyB,IAAA;AACvEC,IAAAA,iBAAAA,CAAON,IAAAA,CAAKO,KACV,4FAAA,CAAA;AAEJ;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;AAEA,EAAA,MAAgBC,IAAAA,CACdL,KAAAA,EACAM,OAAAA,GAAsC,IACtCC,GAAAA,EACoC;AACpC,IAAA,MAAMC,cAAAA,GAAiB,aAAA;AACvB,IAAA,MAAMC,SAAAA,GAAY;MAEhBC,eAAAA,EAAiB,EAAA;MAEjB,GAAGC,wBAAAA,CAAc,IAAA,CAAKX,KAAAA,CAAMS,SAAAA,IAAa,EAAC,CAAA;AAC1C,MAAA,GAAGE,wBAAAA,CAAcL,OAAAA,CAAQG,SAAAA,IAAa,EAAC;AACzC,KAAA;AAEA,IAAA,MAAMG,KAAAA,GAAkC;AACtCC,MAAAA,MAAAA,EAAQ,IAAIC,2CAAAA,EAAAA;MACZC,MAAAA,EAAQC,MAAAA;MACRC,SAAAA,EAAW;AACb,KAAA;AACA,IAAA,MAAML,KAAAA,CAAMC,OAAOK,GAAAA,CACjB,IAAIC,0BACF,IAAA,CAAKC,SAAAA,CAAUC,OAAOC,MAAAA,CAAO;MAC3BC,IAAAA,EAAMP,MAAAA;MACNQ,YAAAA,EAAcR;AAChB,KAAA,CAAA,CAAA,CAAA;AAGJ,IAAA,MAAMJ,KAAAA,CAAMC,MAAAA,CAAOY,OAAAA,CAAQ,IAAA,CAAKZ,OAAOa,QAAQ,CAAA;AAE/C,IAAA,IAAI1B,MAAM2B,MAAAA,EAAQ;AAChB,MAAA,MAAMC,cAAc,IAAIC,uBAAAA,CACtB,IAAA,CAAKT,SAAAA,CAAUU,KAAKR,MAAAA,CAAO;AACzBK,QAAAA,MAAAA,EAAQ3B,KAAAA,CAAM2B,MAAAA;AACdI,QAAAA,OAAAA,EAAS/B,KAAAA,CAAM+B,OAAAA;AACfC,QAAAA,cAAAA,EAAgBC,eAAAA,CAASjC,KAAAA,CAAMgC,cAAc,CAAA,GAAIhC,MAAMgC,cAAAA,GAAiBhB;AAC1E,OAAA,CAAA,CAAA;AAEF,MAAA,MAAMJ,KAAAA,CAAMC,MAAAA,CAAOK,GAAAA,CAAIU,WAAAA,CAAAA;AACzB;AAEA,IAAA,MAAMM,uBAAuB,IAAIC,wBAAAA,CAAa1B,SAAAA,CAAUC,eAAAA,IAAmB,GAAG0B,mBAAAA,CAAAA;AAE9E,IAAA,MAAMC,mBAAmB,CAACrC,KAAAA,CAAMgC,cAAAA,IAAkB,EAAEhC,MAAMgC,cAAAA,YAA0BM,aAAAA,CAAAA;AACpF,IAAA,MAAMC,qBAAAA,GAAwBF,gBAAAA,GAC1BG,KAAAA,CAAEC,MAAAA,CAAO;MACPC,QAAAA,EAAUF,KAAAA,CAAEG,QAAM,CAAGC,QAAAA,CAASC,OAAO7C,KAAAA,CAAMgC,cAAAA,IAAkB,EAAA,CAAA;AAC/D,KAAA,IACChC,KAAAA,CAAMgC,cAAAA;AAEX,IAAA,MAAMc,eAAAA,GAAkB,IAAIC,sBAAAA,CAAY;MACtCC,IAAAA,EAAM,cAAA;MACNC,WAAAA,EAAa,oCAAA;MACbC,WAAAA,EAAaX,qBAAAA;AACbY,MAAAA,OAAAA,gCAAgBnD,MAAAA,KAAAA;AACd,QAAA,MAAMe,SAASsB,gBAAAA,GAAmBrC,MAAAA,CAAM0C,QAAAA,GAAWU,IAAAA,CAAKC,UAAUrD,MAAAA,CAAAA;AAClEY,QAAAA,KAAAA,CAAMG,MAAAA,GAAS,IAAIuC,4BAAAA,CAAiBvC,MAAAA,CAAAA;AACpC,QAAA,OAAO,IAAIwC,4BAAiB,uBAAA,CAAA;OAC9B,EAJS,SAAA;KAKX,CAAA;AAEA,IAAA,MAAMC,KAAAA,GAAQ;AAAI,MAAA,GAAA,IAAA,CAAKxD,KAAAA,CAAMwD,KAAAA;AAAOV,MAAAA;;AACpC,IAAA,IAAIW,gBAAAA,GAAmB,KAAA;AAEvB,IAAA,OAAO,CAAC7C,MAAMG,MAAAA,EAAQ;AACpBH,MAAAA,KAAAA,CAAMK,SAAAA,EAAAA;AACN,MAAA,IAAIL,KAAAA,CAAMK,SAAAA,IAAaR,SAAAA,CAAUC,eAAAA,IAAmBgD,QAAAA,CAAAA,EAAW;AAC7D,QAAA,MAAM,IAAItB,mBAAAA,CACR,CAAA,0CAAA,EAA6CxB,KAAAA,CAAMK,SAAS,CAAA,YAAA,CAAc,CAAA;AAE9E;AAEA,MAAA,MAAMV,GAAAA,CAAIb,OAAAA,CAAQiE,IAAAA,CAAK,OAAA,EAAS;AAAE/C,QAAAA;OAAM,CAAA;AACxC,MAAA,MAAM8B,QAAAA,GAAW,MAAM,IAAA,CAAK1C,KAAAA,CAAM4D,IAAIC,MAAAA,CAAO;QAC3CnC,QAAAA,EAAUd,KAAAA,CAAMC,MAAAA,CAAOa,QAAAA,CAASoC,KAAAA,EAAK;AACrCN,QAAAA,KAAAA;AACAO,QAAAA,UAAAA,EAAYN,mBAAmBX,eAAAA,GAAkBU,KAAAA,CAAMQ,SAAS,CAAA,GAAI,UAAA,GAAaR,MAAM,CAAA,CAAA;QACvFS,MAAAA,EAAQ;OACV,CAAA;AACA,MAAA,MAAMrD,KAAAA,CAAMC,MAAAA,CAAOY,OAAAA,CAAQiB,QAAAA,CAAShB,QAAQ,CAAA;AAE5C,MAAA,MAAMwC,gBAAAA,GAAmBxB,SAASyB,YAAAA,EAAY;AAC9C,MAAA,KAAA,MAAWC,YAAYF,gBAAAA,EAAkB;AACvC,QAAA,IAAI;AACF,UAAA,MAAMG,IAAAA,GAAOb,MAAMc,IAAAA,CAAK,CAACD,UAASA,KAAAA,CAAKrB,IAAAA,KAASoB,SAASG,QAAQ,CAAA;AACjE,UAAA,IAAI,CAACF,IAAAA,EAAM;AACT,YAAA,MAAM,IAAIjC,mBAAAA,CAAW,CAAA,KAAA,EAAQgC,QAAAA,CAASG,QAAQ,CAAA,gBAAA,CAAkB,CAAA;AAClE;AAEA,UAAA,MAAMC,YAAiBJ,QAAAA,CAASpE,KAAAA;AAChC,UAAA,MAAMyE,eAA2B,MAAMJ,IAAAA,CAAK9D,GAAAA,CAAIiE,SAAAA,EAAWzC,OAAAA,CAAQ;AACjEnB,YAAAA,KAAAA;YACA8D,WAAAA,EAAaN,QAAAA;AACb,YAAA,CAACO,eAAAA,CAAKC,WAAAA,CAAYC,MAAM,GAAG,IAAA,CAAKhE;WAClC,CAAA;AACA,UAAA,MAAMD,KAAAA,CAAMC,MAAAA,CAAOK,GAAAA,CACjB,IAAI4D,uBAAAA,CAAY;YACdC,IAAAA,EAAM,aAAA;AACNC,YAAAA,UAAAA,EAAYZ,QAAAA,CAASY,UAAAA;AACrBT,YAAAA,QAAAA,EAAUH,QAAAA,CAASG,QAAAA;YACnBU,MAAAA,EAAQ;cAAEF,IAAAA,EAAM,MAAA;AAAQG,cAAAA,KAAAA,EAAOT,aAAaU,cAAAA;AAAiB;AAC/D,WAAA,CAAA,CAAA;AAEJ,SAAA,CAAA,OAASC,CAAAA,EAAG;AACV,UAAA,IAAIA,aAAaC,oBAAAA,EAAW;AAC1BnD,YAAAA,oBAAAA,CAAqBoD,IAAIF,CAAAA,CAAAA;AACzB,YAAA,MAAMxE,KAAAA,CAAMC,MAAAA,CAAOK,GAAAA,CACjB,IAAI4D,uBAAAA,CAAY;cACdC,IAAAA,EAAM,aAAA;AACNC,cAAAA,UAAAA,EAAYZ,QAAAA,CAASY,UAAAA;AACrBT,cAAAA,QAAAA,EAAUH,QAAAA,CAASG,QAAAA;cACnBU,MAAAA,EAAQ;gBAAEF,IAAAA,EAAM,YAAA;AAAcG,gBAAAA,KAAAA,EAAOE,EAAEG,OAAAA;AAAU;AACnD,aAAA,CAAA,CAAA;WAEJ,MAAO;AACL,YAAA,MAAMH,CAAAA;AACR;AACF;AACF;AAGA,MAAA,MAAMI,YAAAA,GAAe9C,SAAS+C,eAAAA,EAAe;AAC7C,MAAA,IAAIC,cAAAA,CAAQxB,gBAAAA,CAAAA,IAAqBwB,cAAAA,CAAQF,YAAAA,CAAAA,EAAe;AACtD,QAAA,MAAM5E,KAAAA,CAAMC,MAAAA,CAAOK,GAAAA,CAAI,IAAIoC,6BAAiB,IAAA,EAAM;AAAE,UAAA,CAAC9C,cAAAA,GAAiB;AAAK,SAAA,CAAA,CAAA;OAC7E,MAAO;AACL,QAAA,MAAMI,KAAAA,CAAMC,MAAAA,CAAO8E,UAAAA,CACjB/E,KAAAA,CAAMC,MAAAA,CAAOa,QAAAA,CAASkE,MAAAA,CAAO,CAACC,GAAAA,KAAQA,GAAAA,CAAIC,IAAAA,CAAKtF,cAAAA,CAAe,CAAA,CAAA;AAElE;AAGA,MAAA,IAAI,CAACkF,cAAAA,CAAQF,YAAAA,CAAAA,IAAiBE,cAAAA,CAAQxB,gBAAAA,CAAAA,EAAmB;AACvDT,QAAAA,gBAAAA,GAAmB,IAAA;AACnBD,QAAAA,KAAAA,CAAMQ,MAAAA,GAAS,CAAA;AACfR,QAAAA,KAAAA,CAAMuC,KAAKjD,eAAAA,CAAAA;AACb;AAEA,MAAA,MAAMvC,GAAAA,CAAIb,OAAAA,CAAQiE,IAAAA,CAAK,SAAA,EAAW;AAAE/C,QAAAA;OAAM,CAAA;AAC5C;AAEA,IAAA,IAAI,IAAA,CAAKZ,MAAMC,qBAAAA,EAAuB;AACpC,MAAA,IAAA,CAAKY,OAAOmF,KAAAA,EAAK;AACjB,MAAA,MAAM,IAAA,CAAKnF,OAAOY,OAAAA,CAAQb,KAAAA,CAAMC,OAAOa,QAAAA,CAASoC,KAAAA,CAAM,CAAA,CAAA,CAAA;KACxD,MAAO;AACL,MAAA,MAAM,IAAA,CAAKjD,OAAOY,OAAAA,CAAQb,KAAAA,CAAMC,OAAOa,QAAAA,CAASoC,KAAAA,CAAM,EAAC,CAAA,CAAA;AACzD;AACA,IAAA,OAAO;AAAEjD,MAAAA,MAAAA,EAAQD,KAAAA,CAAMC,MAAAA;AAAQE,MAAAA,MAAAA,EAAQH,KAAAA,CAAMG;AAAO,KAAA;AACtD;AAEA,EAAA,IAAI+E,IAAAA,GAAkB;AACpB,IAAA,MAAMtC,KAAAA,GAAQ,IAAA,CAAKxD,KAAAA,CAAMwD,KAAAA,CAAMM,KAAAA,EAAK;AAEpC,IAAA,IAAI,IAAA,CAAK9D,MAAM8F,IAAAA,EAAM;AACnB,MAAA,OAAO;AAAE,QAAA,GAAG,KAAK9F,KAAAA,CAAM8F,IAAAA;AAAMtC,QAAAA;AAAM,OAAA;AACrC;AAEA,IAAA,OAAO;MACLR,IAAAA,EAAM,aAAA;AACNQ,MAAAA,KAAAA;MACAP,WAAAA,EAAa,0DAAA;MACb,GAAIO,KAAAA,CAAMQ,SAAS,CAAA,IAAK;QACtBiC,gBAAAA,EAAkB;AAChB,UAAA,CAAA,8CAAA,CAAA;aACGzC,KAAAA,CAAM0C,GAAAA,CAAI,CAAC7B,IAAAA,KAAS,CAAA,MAAA,EAASA,KAAKrB,IAAI,CAAA,GAAA,EAAMqB,IAAAA,CAAKpB,WAAW,CAAA,CAAA,CAAG;AAClEkD,SAAAA,CAAAA,IAAAA,CAAK,IAAA;AACT;AACF,KAAA;AACF;AAEA,EAAA,IACc/E,SAAAA,GAAuC;AACnD,IAAA,MAAMgF,SAAAA,GAAY,IAAA,CAAKpG,KAAAA,CAAMoB,SAAAA,IAAa,EAAC;AAC3C,IAAA,MAAMiF,gBAAAA,GAA8C;MAClDhF,MAAAA,EAAQiF,wCAAAA;MACRxE,IAAAA,EAAMyE;AACR,KAAA;AAEA,IAAA,OAAOC,iBAAAA,CAAOH,gBAAAA,CAAAA,CACZ,CAACI,KAAKC,eAAAA,KAAAA;AACJ,MAAA,MAAMC,QAAAA,GAAWP,SAAAA,CAAUK,GAAAA,CAAAA,IAAQC,eAAAA;AACnC,MAAA,IAAIC,oBAAoBC,2BAAAA,EAAgB;AACtC,QAAA,OAAOD,QAAAA;AACT;AACA,MAAA,OAAOA,QAAAA,CAASD,eAAAA,CAAAA,IAAoBA,eAAAA;KACtC,CAAA;AAEJ;EAEAG,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;MACT7G,KAAAA,EAAO8G,qBAAAA,CAAY,KAAK9G,KAAK,CAAA;AAC7BN,MAAAA,OAAAA,EAAS,IAAA,CAAKA;AAChB,KAAA;AACF;AAEA,EAAA,IAAImB,OAAOA,MAAAA,EAAoB;AAC7B,IAAA,IAAA,CAAKb,MAAMa,MAAAA,GAASA,MAAAA;AACtB;AAEA,EAAA,IAAIA,MAAAA,GAAS;AACX,IAAA,OAAO,KAAKb,KAAAA,CAAMa,MAAAA;AACpB;AACF;;;IAlCWkG,UAAAA,EAAY","file":"agent.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport {\n AnyTool,\n DynamicTool,\n StringToolOutput,\n Tool,\n ToolError,\n ToolOutput,\n} 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\";\nimport { Logger } from \"@/logger/logger.js\";\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\n/**\n * @deprecated Use RequirementAgent instead.\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 Logger.root.warn(\n \"The ToolCallingAgent is deprecated and will be removed soon. Use RequirementAgent instead.\",\n );\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.input;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n [Tool.contextKeys.Memory]: this.memory,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n output: { type: \"text\", value: toolResponse.getTextContent() },\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 output: { type: \"error-text\", value: e.explain() },\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,10 +1,10 @@
|
|
|
1
1
|
import { GetRunContext, MiddlewareType } from '../../context.cjs';
|
|
2
|
-
import {
|
|
2
|
+
import { c as AgentMeta, a as BaseAgent } from '../../base-XfWeXQ-S.cjs';
|
|
3
3
|
import { AnyTool } from '../../tools/base.cjs';
|
|
4
4
|
import { BaseMemory } from '../../memory/base.cjs';
|
|
5
|
-
import { E as Emitter } from '../../emitter-
|
|
5
|
+
import { E as Emitter } from '../../emitter-jN55XZZq.cjs';
|
|
6
6
|
import { ToolCallingAgentTemplates, ToolCallingAgentExecutionConfig, ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions, ToolCallingAgentCallbacks } from './types.cjs';
|
|
7
|
-
import { m as ChatModel } from '../../chat-
|
|
7
|
+
import { m as ChatModel } from '../../chat-CC0s8z23.cjs';
|
|
8
8
|
import '../../internals/serializable.cjs';
|
|
9
9
|
import '../../internals/types.cjs';
|
|
10
10
|
import '../../internals/helpers/guards.cjs';
|
|
@@ -36,6 +36,9 @@ interface ToolCallingAgentInput {
|
|
|
36
36
|
execution?: ToolCallingAgentExecutionConfig;
|
|
37
37
|
saveIntermediateSteps?: boolean;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated Use RequirementAgent instead.
|
|
41
|
+
*/
|
|
39
42
|
declare class ToolCallingAgent extends BaseAgent<ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions> {
|
|
40
43
|
readonly input: ToolCallingAgentInput;
|
|
41
44
|
readonly emitter: Emitter<ToolCallingAgentCallbacks>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { GetRunContext, MiddlewareType } from '../../context.js';
|
|
2
|
-
import {
|
|
2
|
+
import { c as AgentMeta, a as BaseAgent } from '../../base-CyFx7BRL.js';
|
|
3
3
|
import { AnyTool } from '../../tools/base.js';
|
|
4
4
|
import { BaseMemory } from '../../memory/base.js';
|
|
5
|
-
import { E as Emitter } from '../../emitter-
|
|
5
|
+
import { E as Emitter } from '../../emitter-36-9MnvA.js';
|
|
6
6
|
import { ToolCallingAgentTemplates, ToolCallingAgentExecutionConfig, ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions, ToolCallingAgentCallbacks } from './types.js';
|
|
7
|
-
import { m as ChatModel } from '../../chat-
|
|
7
|
+
import { m as ChatModel } from '../../chat-D8SVtw5Q.js';
|
|
8
8
|
import '../../internals/serializable.js';
|
|
9
9
|
import '../../internals/types.js';
|
|
10
10
|
import '../../internals/helpers/guards.js';
|
|
@@ -36,6 +36,9 @@ interface ToolCallingAgentInput {
|
|
|
36
36
|
execution?: ToolCallingAgentExecutionConfig;
|
|
37
37
|
saveIntermediateSteps?: boolean;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated Use RequirementAgent instead.
|
|
41
|
+
*/
|
|
39
42
|
declare class ToolCallingAgent extends BaseAgent<ToolCallingAgentRunInput, ToolCallingAgentRunOutput, ToolCallingAgentRunOptions> {
|
|
40
43
|
readonly input: ToolCallingAgentInput;
|
|
41
44
|
readonly emitter: Emitter<ToolCallingAgentCallbacks>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseAgent, AgentError } from '../base.js';
|
|
2
|
-
import { DynamicTool, ToolError, StringToolOutput } from '../../tools/base.js';
|
|
2
|
+
import { DynamicTool, Tool, ToolError, StringToolOutput } from '../../tools/base.js';
|
|
3
3
|
import { Emitter } from '../../emitter/emitter.js';
|
|
4
4
|
import { shallowCopy } from '../../serializer/utils.js';
|
|
5
5
|
import { UnconstrainedMemory } from '../../memory/unconstrainedMemory.js';
|
|
@@ -11,6 +11,7 @@ import { Cache } from '../../cache/decoratorCache.js';
|
|
|
11
11
|
import { PromptTemplate } from '../../template.js';
|
|
12
12
|
import { ToolCallingAgentTaskPrompt, ToolCallingAgentSystemPrompt } from './prompts.js';
|
|
13
13
|
import { ZodSchema, z } from 'zod';
|
|
14
|
+
import { Logger } from '../../logger/logger.js';
|
|
14
15
|
|
|
15
16
|
var __defProp = Object.defineProperty;
|
|
16
17
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
@@ -40,6 +41,7 @@ class ToolCallingAgent extends BaseAgent {
|
|
|
40
41
|
constructor(input) {
|
|
41
42
|
super(), this.input = input;
|
|
42
43
|
this.input.saveIntermediateSteps = this.input.saveIntermediateSteps ?? true;
|
|
44
|
+
Logger.root.warn("The ToolCallingAgent is deprecated and will be removed soon. Use RequirementAgent instead.");
|
|
43
45
|
}
|
|
44
46
|
static {
|
|
45
47
|
this.register();
|
|
@@ -114,7 +116,8 @@ class ToolCallingAgent extends BaseAgent {
|
|
|
114
116
|
const toolInput = toolCall.input;
|
|
115
117
|
const toolResponse = await tool.run(toolInput).context({
|
|
116
118
|
state,
|
|
117
|
-
toolCallMsg: toolCall
|
|
119
|
+
toolCallMsg: toolCall,
|
|
120
|
+
[Tool.contextKeys.Memory]: this.memory
|
|
118
121
|
});
|
|
119
122
|
await state.memory.add(new ToolMessage({
|
|
120
123
|
type: "tool-result",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/agents/toolCalling/agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","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","toolResponse","toolCallMsg","ToolMessage","type","toolCallId","output","value","getTextContent","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 * SPDX-License-Identifier: Apache-2.0\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.input;\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 output: { type: \"text\", value: toolResponse.getTextContent() },\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 output: { type: \"error-text\", value: e.explain() },\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":["../../../src/agents/toolCalling/agent.ts"],"names":["ToolCallingAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","saveIntermediateSteps","Logger","warn","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","toolResponse","toolCallMsg","Tool","contextKeys","Memory","ToolMessage","type","toolCallId","output","value","getTextContent","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 * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AgentError, BaseAgent } from \"@/agents/base.js\";\nimport {\n AnyTool,\n DynamicTool,\n StringToolOutput,\n Tool,\n ToolError,\n ToolOutput,\n} 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\";\nimport { Logger } from \"@/logger/logger.js\";\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\n/**\n * @deprecated Use RequirementAgent instead.\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 Logger.root.warn(\n \"The ToolCallingAgent is deprecated and will be removed soon. Use RequirementAgent instead.\",\n );\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.input;\n const toolResponse: ToolOutput = await tool.run(toolInput).context({\n state,\n toolCallMsg: toolCall,\n [Tool.contextKeys.Memory]: this.memory,\n });\n await state.memory.add(\n new ToolMessage({\n type: \"tool-result\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n output: { type: \"text\", value: toolResponse.getTextContent() },\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 output: { type: \"error-text\", value: e.explain() },\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,6 +1,6 @@
|
|
|
1
1
|
import { BaseMemory } from '../../memory/base.cjs';
|
|
2
2
|
import { AssistantMessage } from '../../backend/message.cjs';
|
|
3
|
-
import { C as Callback } from '../../emitter-
|
|
3
|
+
import { C as Callback } from '../../emitter-jN55XZZq.cjs';
|
|
4
4
|
import { ToolCallingAgentSystemPrompt, ToolCallingAgentTaskPrompt } from './prompts.cjs';
|
|
5
5
|
import { ZodSchema } from 'zod';
|
|
6
6
|
import '../../errors.cjs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseMemory } from '../../memory/base.js';
|
|
2
2
|
import { AssistantMessage } from '../../backend/message.js';
|
|
3
|
-
import { C as Callback } from '../../emitter-
|
|
3
|
+
import { C as Callback } from '../../emitter-36-9MnvA.js';
|
|
4
4
|
import { ToolCallingAgentSystemPrompt, ToolCallingAgentTaskPrompt } from './prompts.js';
|
|
5
5
|
import { ZodSchema } from 'zod';
|
|
6
6
|
import '../../errors.js';
|
package/dist/agents/types.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { e as AgentCallback, d as AgentCallbackValue,
|
|
1
|
+
export { e as AgentCallback, d as AgentCallbackValue, c as AgentMeta, b as AnyAgent, G as GetAgentInput, f as GetAgentOutput, I as InternalAgentCallbackValue, P as PublicAgentCallbackValue } from '../base-XfWeXQ-S.cjs';
|
|
2
2
|
import '../internals/types.cjs';
|
|
3
3
|
import '../tools/base.cjs';
|
|
4
4
|
import '../context.cjs';
|
|
5
|
-
import '../emitter-
|
|
5
|
+
import '../emitter-jN55XZZq.cjs';
|
|
6
6
|
import '../internals/serializable.cjs';
|
|
7
7
|
import '../internals/helpers/guards.cjs';
|
|
8
8
|
import '../internals/helpers/promise.cjs';
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { e as AgentCallback, d as AgentCallbackValue,
|
|
1
|
+
export { e as AgentCallback, d as AgentCallbackValue, c as AgentMeta, b as AnyAgent, G as GetAgentInput, f as GetAgentOutput, I as InternalAgentCallbackValue, P as PublicAgentCallbackValue } from '../base-CyFx7BRL.js';
|
|
2
2
|
import '../internals/types.js';
|
|
3
3
|
import '../tools/base.js';
|
|
4
4
|
import '../context.js';
|
|
5
|
-
import '../emitter-
|
|
5
|
+
import '../emitter-36-9MnvA.js';
|
|
6
6
|
import '../internals/serializable.js';
|
|
7
7
|
import '../internals/helpers/guards.js';
|
|
8
8
|
import '../internals/helpers/promise.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Serializable } from '../internals/serializable.cjs';
|
|
2
|
-
import { m as ChatModel, F as FullModelName } from '../chat-
|
|
2
|
+
import { m as ChatModel, F as FullModelName } from '../chat-CC0s8z23.cjs';
|
|
3
3
|
import { EmbeddingModel } from './embedding.cjs';
|
|
4
4
|
import { ProviderName } from './constants.cjs';
|
|
5
5
|
import { OptionalExcept } from '../internals/types.cjs';
|
|
6
6
|
import './message.cjs';
|
|
7
7
|
import 'ai';
|
|
8
8
|
import '../context.cjs';
|
|
9
|
-
import '../emitter-
|
|
9
|
+
import '../emitter-jN55XZZq.cjs';
|
|
10
10
|
import '../internals/helpers/promise.cjs';
|
|
11
11
|
import '../errors.cjs';
|
|
12
12
|
import 'promise-based-task';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Serializable } from '../internals/serializable.js';
|
|
2
|
-
import { m as ChatModel, F as FullModelName } from '../chat-
|
|
2
|
+
import { m as ChatModel, F as FullModelName } from '../chat-D8SVtw5Q.js';
|
|
3
3
|
import { EmbeddingModel } from './embedding.js';
|
|
4
4
|
import { ProviderName } from './constants.js';
|
|
5
5
|
import { OptionalExcept } from '../internals/types.js';
|
|
6
6
|
import './message.js';
|
|
7
7
|
import 'ai';
|
|
8
8
|
import '../context.js';
|
|
9
|
-
import '../emitter-
|
|
9
|
+
import '../emitter-36-9MnvA.js';
|
|
10
10
|
import '../internals/helpers/promise.js';
|
|
11
11
|
import '../errors.js';
|
|
12
12
|
import 'promise-based-task';
|