beeai-framework 0.1.21 → 0.1.22
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 +6 -10
- package/dist/adapters/a2a/agents/agent.d.ts +6 -10
- 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 +6 -10
- package/dist/adapters/acp/agents/agent.d.ts +6 -10
- 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 +8 -6
- package/dist/adapters/agentstack/agents/agent.d.ts +8 -6
- 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 +2 -2
- package/dist/adapters/amazon-bedrock/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/anthropic/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/azure-openai/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/dummy/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/google-vertex/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/groq/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/langchain/backend/chat.d.ts +2 -2
- 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.d.cts +2 -2
- package/dist/adapters/ollama/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/openai/backend/chat.d.ts +2 -2
- 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.d.cts +2 -2
- package/dist/adapters/vercel/backend/chat.d.ts +2 -2
- 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 +15 -0
- package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
- package/dist/adapters/vercel/backend/utils.d.cts +4 -3
- package/dist/adapters/vercel/backend/utils.d.ts +4 -3
- package/dist/adapters/vercel/backend/utils.js +15 -1
- package/dist/adapters/vercel/backend/utils.js.map +1 -1
- package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
- package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
- 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 +2 -2
- package/dist/adapters/xai/backend/chat.d.ts +2 -2
- package/dist/{agent-DvvVGvLr.d.cts → agent-BMfyig7X.d.cts} +5 -4
- package/dist/{agent-CHebzsQB.d.ts → agent-Dxw8AGWb.d.ts} +5 -4
- package/dist/agents/base.cjs +5 -2
- package/dist/agents/base.cjs.map +1 -1
- package/dist/agents/base.d.cts +2 -2
- package/dist/agents/base.d.ts +2 -2
- package/dist/agents/base.js +5 -2
- package/dist/agents/base.js.map +1 -1
- 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 +8 -12
- package/dist/agents/experimental/streamlit/agent.d.ts +8 -12
- 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 +5 -5
- package/dist/agents/react/runners/default/runner.d.ts +5 -5
- 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 +162 -0
- package/dist/agents/requirement/agent.cjs.map +1 -0
- package/dist/agents/requirement/agent.d.cts +29 -0
- package/dist/agents/requirement/agent.d.ts +29 -0
- package/dist/agents/requirement/agent.js +160 -0
- package/dist/agents/requirement/agent.js.map +1 -0
- package/dist/agents/requirement/prompts.cjs +95 -0
- package/dist/agents/requirement/prompts.cjs.map +1 -0
- package/dist/agents/requirement/prompts.d.cts +107 -0
- package/dist/agents/requirement/prompts.d.ts +107 -0
- package/dist/agents/requirement/prompts.js +90 -0
- package/dist/agents/requirement/prompts.js.map +1 -0
- package/dist/agents/requirement/requirements/conditional.cjs +190 -0
- package/dist/agents/requirement/requirements/conditional.cjs.map +1 -0
- package/dist/agents/requirement/requirements/conditional.d.cts +71 -0
- package/dist/agents/requirement/requirements/conditional.d.ts +71 -0
- package/dist/agents/requirement/requirements/conditional.js +188 -0
- package/dist/agents/requirement/requirements/conditional.js.map +1 -0
- package/dist/agents/requirement/requirements/requirement.cjs +107 -0
- package/dist/agents/requirement/requirements/requirement.cjs.map +1 -0
- package/dist/agents/requirement/requirements/requirement.d.cts +59 -0
- package/dist/agents/requirement/requirements/requirement.d.ts +59 -0
- package/dist/agents/requirement/requirements/requirement.js +104 -0
- package/dist/agents/requirement/requirements/requirement.js.map +1 -0
- package/dist/agents/requirement/requirements/utils.cjs +74 -0
- package/dist/agents/requirement/requirements/utils.cjs.map +1 -0
- package/dist/agents/requirement/requirements/utils.d.cts +40 -0
- package/dist/agents/requirement/requirements/utils.d.ts +40 -0
- package/dist/agents/requirement/requirements/utils.js +69 -0
- package/dist/agents/requirement/requirements/utils.js.map +1 -0
- package/dist/agents/requirement/runner.cjs +252 -0
- package/dist/agents/requirement/runner.cjs.map +1 -0
- package/dist/agents/requirement/runner.d.cts +117 -0
- package/dist/agents/requirement/runner.d.ts +117 -0
- package/dist/agents/requirement/runner.js +250 -0
- package/dist/agents/requirement/runner.js.map +1 -0
- package/dist/agents/requirement/types.cjs +40 -0
- package/dist/agents/requirement/types.cjs.map +1 -0
- package/dist/agents/requirement/types.d.cts +24 -0
- package/dist/agents/requirement/types.d.ts +24 -0
- package/dist/agents/requirement/types.js +35 -0
- package/dist/agents/requirement/types.js.map +1 -0
- package/dist/agents/requirement/utils/llm.cjs +202 -0
- package/dist/agents/requirement/utils/llm.cjs.map +1 -0
- package/dist/agents/requirement/utils/llm.d.cts +50 -0
- package/dist/agents/requirement/utils/llm.d.ts +50 -0
- package/dist/agents/requirement/utils/llm.js +199 -0
- package/dist/agents/requirement/utils/llm.js.map +1 -0
- package/dist/agents/requirement/utils/tool.cjs +94 -0
- package/dist/agents/requirement/utils/tool.cjs.map +1 -0
- package/dist/agents/requirement/utils/tool.d.cts +24 -0
- package/dist/agents/requirement/utils/tool.d.ts +24 -0
- package/dist/agents/requirement/utils/tool.js +91 -0
- package/dist/agents/requirement/utils/tool.js.map +1 -0
- package/dist/agents/requirement/utils/toolCallChecker.cjs +61 -0
- package/dist/agents/requirement/utils/toolCallChecker.cjs.map +1 -0
- package/dist/agents/requirement/utils/toolCallChecker.d.cts +28 -0
- package/dist/agents/requirement/utils/toolCallChecker.d.ts +28 -0
- package/dist/agents/requirement/utils/toolCallChecker.js +59 -0
- package/dist/agents/requirement/utils/toolCallChecker.js.map +1 -0
- package/dist/agents/toolCalling/agent.d.cts +8 -12
- package/dist/agents/toolCalling/agent.d.ts +8 -12
- 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.d.cts +2 -2
- package/dist/backend/chat.d.ts +2 -2
- package/dist/backend/core.d.cts +2 -2
- package/dist/backend/core.d.ts +2 -2
- package/dist/backend/embedding.d.cts +2 -2
- package/dist/backend/embedding.d.ts +2 -2
- package/dist/backend/utils.d.cts +2 -2
- package/dist/backend/utils.d.ts +2 -2
- package/dist/{base-BQgDlcGa.d.ts → base-BurRTBA7.d.ts} +4 -2
- package/dist/{base-CwcxwybB.d.cts → base-v-PYIq5G.d.cts} +4 -2
- package/dist/{chat-C0s-o6ll.d.ts → chat-BbCYMAdE.d.ts} +1 -1
- package/dist/{chat-CRb3vUVg.d.cts → chat-DB_cf15S.d.cts} +1 -1
- package/dist/context.cjs +22 -5
- package/dist/context.cjs.map +1 -1
- package/dist/context.d.cts +19 -6
- package/dist/context.d.ts +19 -6
- package/dist/context.js +23 -7
- package/dist/context.js.map +1 -1
- package/dist/emitter/emitter.cjs +19 -13
- 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 +19 -13
- 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-DpqUYjXH.d.cts → emitter-CGKd_-kK.d.cts} +3 -2
- package/dist/{emitter-CZFbzlUi.d.ts → emitter-CN7I4uSV.d.ts} +3 -2
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/internals/fetcher.d.cts +1 -1
- package/dist/internals/fetcher.d.ts +1 -1
- package/dist/internals/helpers/prototype.cjs +5 -0
- package/dist/internals/helpers/prototype.cjs.map +1 -1
- package/dist/internals/helpers/prototype.d.cts +2 -1
- package/dist/internals/helpers/prototype.d.ts +2 -1
- package/dist/internals/helpers/prototype.js +5 -1
- package/dist/internals/helpers/prototype.js.map +1 -1
- package/dist/internals/types.cjs.map +1 -1
- package/dist/internals/types.d.cts +1 -1
- package/dist/internals/types.d.ts +1 -1
- package/dist/internals/types.js.map +1 -1
- package/dist/memory/summarizeMemory.d.cts +2 -2
- package/dist/memory/summarizeMemory.d.ts +2 -2
- package/dist/middleware/trajectory.cjs +322 -0
- package/dist/middleware/trajectory.cjs.map +1 -0
- package/dist/middleware/trajectory.d.cts +115 -0
- package/dist/middleware/trajectory.d.ts +115 -0
- package/dist/middleware/trajectory.js +320 -0
- package/dist/middleware/trajectory.js.map +1 -0
- package/dist/parsers/linePrefix.d.cts +1 -1
- package/dist/parsers/linePrefix.d.ts +1 -1
- package/dist/serializer/serializer.cjs +5 -4
- package/dist/serializer/serializer.cjs.map +1 -1
- package/dist/serializer/serializer.d.cts +1 -1
- package/dist/serializer/serializer.d.ts +1 -1
- package/dist/serializer/serializer.js +5 -4
- package/dist/serializer/serializer.js.map +1 -1
- package/dist/serializer/utils.cjs +3 -0
- package/dist/serializer/utils.cjs.map +1 -1
- package/dist/serializer/utils.d.cts +1 -1
- package/dist/serializer/utils.d.ts +1 -1
- package/dist/serializer/utils.js +3 -0
- package/dist/serializer/utils.js.map +1 -1
- package/dist/{serializer-CQxucveV.d.ts → serializer-53t8gGQa.d.ts} +3 -2
- package/dist/{serializer-BKn50Vnx.d.cts → serializer-c51B2z6d.d.cts} +3 -2
- package/dist/template.cjs +20 -0
- package/dist/template.cjs.map +1 -1
- package/dist/template.d.cts +1 -0
- package/dist/template.d.ts +1 -0
- package/dist/template.js +20 -0
- package/dist/template.js.map +1 -1
- package/dist/tools/arxiv.d.cts +1 -1
- package/dist/tools/arxiv.d.ts +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.d.cts +3 -2
- package/dist/tools/base.d.ts +3 -2
- package/dist/tools/base.js.map +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/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.cjs +52 -0
- package/dist/tools/think.cjs.map +1 -0
- package/dist/tools/think.d.cts +47 -0
- package/dist/tools/think.d.ts +47 -0
- package/dist/tools/think.js +50 -0
- package/dist/tools/think.js.map +1 -0
- 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-BXkkbABd.d.ts +213 -0
- package/dist/types-Cx6f43du.d.cts +213 -0
- package/dist/version.cjs +1 -1
- package/dist/version.js +1 -1
- package/dist/workflows/agent.d.cts +3 -3
- package/dist/workflows/agent.d.ts +3 -3
- package/dist/workflows/workflow.d.cts +1 -1
- package/dist/workflows/workflow.d.ts +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { BaseAgent } from '../base.js';
|
|
2
|
+
import { Emitter } from '../../emitter/emitter.js';
|
|
3
|
+
import { UnconstrainedMemory } from '../../memory/unconstrainedMemory.js';
|
|
4
|
+
import { UserMessage } from '../../backend/message.js';
|
|
5
|
+
import { shallowCopy } from '../../serializer/utils.js';
|
|
6
|
+
import { mapObj } from '../../internals/helpers/object.js';
|
|
7
|
+
import { PromptTemplate } from '../../template.js';
|
|
8
|
+
import { RequirementAgentToolNoResultPrompt, RequirementAgentToolErrorPrompt, RequirementAgentTaskPrompt, RequirementAgentSystemPrompt } from './prompts.js';
|
|
9
|
+
import { RequirementAgentRunner } from './runner.js';
|
|
10
|
+
import { ToolCallChecker } from './utils/toolCallChecker.js';
|
|
11
|
+
import { pickBy, isEmptyish, isDefined } from 'remeda';
|
|
12
|
+
import { castArray } from '../../internals/helpers/array.js';
|
|
13
|
+
|
|
14
|
+
var __defProp = Object.defineProperty;
|
|
15
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
16
|
+
class RequirementAgent extends BaseAgent {
|
|
17
|
+
static {
|
|
18
|
+
__name(this, "RequirementAgent");
|
|
19
|
+
}
|
|
20
|
+
emitter = Emitter.root.child({
|
|
21
|
+
namespace: [
|
|
22
|
+
"agent",
|
|
23
|
+
"requirement"
|
|
24
|
+
],
|
|
25
|
+
creator: this
|
|
26
|
+
});
|
|
27
|
+
input;
|
|
28
|
+
runner = RequirementAgentRunner;
|
|
29
|
+
constructor(input) {
|
|
30
|
+
super();
|
|
31
|
+
this.input = {
|
|
32
|
+
...input,
|
|
33
|
+
memory: input.memory || new UnconstrainedMemory(),
|
|
34
|
+
tools: input.tools || [],
|
|
35
|
+
requirements: input.requirements || [],
|
|
36
|
+
saveIntermediateSteps: input.saveIntermediateSteps ?? true,
|
|
37
|
+
finalAnswerAsTool: input.finalAnswerAsTool ?? true,
|
|
38
|
+
toolCallChecker: input.toolCallChecker ?? true
|
|
39
|
+
};
|
|
40
|
+
if (input.middlewares) {
|
|
41
|
+
this.middlewares.push(...input.middlewares);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
static {
|
|
45
|
+
this.register();
|
|
46
|
+
}
|
|
47
|
+
async _run(input, options = {}, run) {
|
|
48
|
+
const execution = {
|
|
49
|
+
maxRetriesPerStep: 3,
|
|
50
|
+
totalMaxRetries: 20,
|
|
51
|
+
maxIterations: 20,
|
|
52
|
+
...this.input.execution,
|
|
53
|
+
...options.execution
|
|
54
|
+
};
|
|
55
|
+
const toolCallChecker = this.createToolCallChecker();
|
|
56
|
+
const runner = new this.runner(this.input.llm, execution, this.input.tools || [], this.input.requirements || [], input.expectedOutput || null, toolCallChecker, run, this.input.finalAnswerAsTool, this.templates);
|
|
57
|
+
const newMessages = this.processInput(input);
|
|
58
|
+
await runner.addMessages([
|
|
59
|
+
...this.memory.messages
|
|
60
|
+
]);
|
|
61
|
+
await runner.addMessages(newMessages);
|
|
62
|
+
const finalState = await runner.run();
|
|
63
|
+
if (this.input.saveIntermediateSteps) {
|
|
64
|
+
this.memory.reset();
|
|
65
|
+
await this.memory.addMany(finalState.memory.messages);
|
|
66
|
+
} else {
|
|
67
|
+
await this.memory.addMany(newMessages);
|
|
68
|
+
const messages = finalState.memory.messages;
|
|
69
|
+
const lastPair = messages.slice(-2);
|
|
70
|
+
await this.memory.addMany(lastPair);
|
|
71
|
+
}
|
|
72
|
+
if (!finalState.answer) {
|
|
73
|
+
throw new Error("Agent did not produce a final answer");
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
result: finalState.answer,
|
|
77
|
+
memory: finalState.memory,
|
|
78
|
+
state: finalState
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
processInput(input) {
|
|
82
|
+
if (!input.prompt) {
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
const userMessage = new UserMessage(this.templates.task.render({
|
|
86
|
+
prompt: input.prompt,
|
|
87
|
+
context: input.context,
|
|
88
|
+
expectedOutput: typeof input.expectedOutput === "string" ? input.expectedOutput : void 0
|
|
89
|
+
}));
|
|
90
|
+
return [
|
|
91
|
+
userMessage
|
|
92
|
+
];
|
|
93
|
+
}
|
|
94
|
+
createToolCallChecker() {
|
|
95
|
+
const config = {};
|
|
96
|
+
if (typeof this.input.toolCallChecker === "object") {
|
|
97
|
+
Object.assign(config, this.input.toolCallChecker);
|
|
98
|
+
}
|
|
99
|
+
const checker = new ToolCallChecker(config);
|
|
100
|
+
checker.enabled = this.input.toolCallChecker !== false;
|
|
101
|
+
return checker;
|
|
102
|
+
}
|
|
103
|
+
get meta() {
|
|
104
|
+
const tools = this.input.tools || [];
|
|
105
|
+
return {
|
|
106
|
+
name: this.input.name ?? "Requirement",
|
|
107
|
+
tools,
|
|
108
|
+
description: this.input.description ?? "The RequirementAgent is a declarative AI agent implementation that provides predictable, controlled execution behavior across different language models through rule-based constraints.",
|
|
109
|
+
...tools.length > 0 && {
|
|
110
|
+
extraDescription: [
|
|
111
|
+
`Tools that I can use to accomplish given task.`,
|
|
112
|
+
...tools.map((tool) => `Tool '${tool.name}': ${tool.description}.`)
|
|
113
|
+
].join("\n")
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
get templates() {
|
|
118
|
+
const overrides = this.input.templates || {};
|
|
119
|
+
const finalized = mapObj({
|
|
120
|
+
system: RequirementAgentSystemPrompt,
|
|
121
|
+
task: RequirementAgentTaskPrompt,
|
|
122
|
+
toolError: RequirementAgentToolErrorPrompt,
|
|
123
|
+
toolNoResult: RequirementAgentToolNoResultPrompt
|
|
124
|
+
})((key, defaultTemplate) => {
|
|
125
|
+
const override = overrides[key] ?? defaultTemplate;
|
|
126
|
+
if (override instanceof PromptTemplate) {
|
|
127
|
+
return override;
|
|
128
|
+
}
|
|
129
|
+
return override(defaultTemplate) ?? defaultTemplate;
|
|
130
|
+
});
|
|
131
|
+
if (this.input.role || this.input.instructions || this.input.notes) {
|
|
132
|
+
finalized.system.update({
|
|
133
|
+
defaults: pickBy({
|
|
134
|
+
role: this.input.role,
|
|
135
|
+
instructions: isEmptyish(this.input.instructions) ? void 0 : castArray(this.input.instructions).map((v) => `- ${v}`).join("\n"),
|
|
136
|
+
notes: isEmptyish(this.input.notes) ? void 0 : castArray(this.input.notes).map((v) => `- ${v}`).join("\n")
|
|
137
|
+
}, isDefined)
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return finalized;
|
|
141
|
+
}
|
|
142
|
+
createSnapshot() {
|
|
143
|
+
return {
|
|
144
|
+
...super.createSnapshot(),
|
|
145
|
+
input: shallowCopy(this.input),
|
|
146
|
+
emitter: this.emitter,
|
|
147
|
+
runnerClass: this.runner
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
set memory(memory) {
|
|
151
|
+
this.input.memory = memory;
|
|
152
|
+
}
|
|
153
|
+
get memory() {
|
|
154
|
+
return this.input.memory;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export { RequirementAgent };
|
|
159
|
+
//# sourceMappingURL=agent.js.map
|
|
160
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/agents/requirement/agent.ts"],"names":["RequirementAgent","BaseAgent","emitter","Emitter","root","child","namespace","creator","input","runner","RequirementAgentRunner","memory","UnconstrainedMemory","tools","requirements","saveIntermediateSteps","finalAnswerAsTool","toolCallChecker","middlewares","push","register","_run","options","run","execution","maxRetriesPerStep","totalMaxRetries","maxIterations","createToolCallChecker","llm","expectedOutput","templates","newMessages","processInput","addMessages","messages","finalState","reset","addMany","lastPair","slice","answer","Error","result","state","prompt","userMessage","UserMessage","task","render","context","undefined","config","Object","assign","checker","ToolCallChecker","enabled","meta","name","description","length","extraDescription","map","tool","join","overrides","finalized","mapObj","system","RequirementAgentSystemPrompt","RequirementAgentTaskPrompt","toolError","RequirementAgentToolErrorPrompt","toolNoResult","RequirementAgentToolNoResultPrompt","key","defaultTemplate","override","PromptTemplate","role","instructions","notes","update","defaults","pickBy","isEmptyish","castArray","v","isDefined","createSnapshot","shallowCopy","runnerClass"],"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 { BaseAgent } from \"@/agents/base.js\";\nimport { AnyTool } from \"@/tools/base.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { ChatModel } from \"@/backend/chat.js\";\nimport type { GetRunContext, MiddlewareType } from \"@/context.js\";\nimport { UnconstrainedMemory } from \"@/memory/unconstrainedMemory.js\";\nimport { Message, UserMessage } from \"@/backend/message.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { mapObj } from \"@/internals/helpers/object.js\";\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentCallbacks,\n RequirementAgentExecutionConfig,\n RequirementAgentOutput,\n RequirementAgentRunInput,\n RequirementAgentRunOptions,\n RequirementAgentTemplates,\n} from \"./types.js\";\nimport {\n RequirementAgentSystemPrompt,\n RequirementAgentTaskPrompt,\n RequirementAgentToolErrorPrompt,\n RequirementAgentToolNoResultPrompt,\n} from \"./prompts.js\";\nimport { Requirement } from \"./requirements/requirement.js\";\nimport { RequirementAgentRunner } from \"./runner.js\";\nimport { ToolCallChecker, ToolCallCheckerConfig } from \"./utils/toolCallChecker.js\";\nimport { isDefined, isEmptyish, pickBy } from \"remeda\";\nimport { castArray } from \"@/internals/helpers/array.js\";\nimport type { RequiredExcept } from \"@/internals/types.js\";\n\nexport type RequirementAgentTemplateFactory<K extends keyof RequirementAgentTemplates> = (\n template: RequirementAgentTemplates[K],\n) => RequirementAgentTemplates[K];\n\nexport interface RequirementAgentInput {\n llm: ChatModel;\n memory?: BaseMemory;\n tools?: AnyTool[];\n requirements?: Requirement[];\n name?: string;\n description?: string;\n role?: string;\n instructions?: string | string[];\n notes?: string | string[];\n toolCallChecker?: boolean | ToolCallCheckerConfig;\n finalAnswerAsTool?: boolean;\n saveIntermediateSteps?: boolean;\n execution?: RequirementAgentExecutionConfig;\n templates?: Partial<{\n [K in keyof RequirementAgentTemplates]:\n | RequirementAgentTemplates[K]\n | RequirementAgentTemplateFactory<K>;\n }>;\n middlewares?: MiddlewareType<RequirementAgent>[];\n}\n\ntype InternalRequirementAgentInput = RequiredExcept<\n RequirementAgentInput,\n | \"role\"\n | \"instructions\"\n | \"name\"\n | \"description\"\n | \"templates\"\n | \"notes\"\n | \"execution\"\n | \"middlewares\"\n>;\n\n/**\n * RequirementAgent - A declarative AI agent with rule-based constraints\n *\n * The RequirementAgent provides predictable, controlled execution behavior across\n * different language models through rule-based constraints (Requirements).\n * Requirements can be configured as strict or flexible as necessary, adapting to\n * task requirements while ensuring consistent execution regardless of the underlying\n * model's reasoning or tool-calling capabilities.\n */\nexport class RequirementAgent extends BaseAgent<\n RequirementAgentRunInput,\n RequirementAgentOutput,\n RequirementAgentRunOptions\n> {\n public readonly emitter = Emitter.root.child<RequirementAgentCallbacks>({\n namespace: [\"agent\", \"requirement\"],\n creator: this,\n });\n\n protected readonly input: InternalRequirementAgentInput;\n\n protected runner: new (\n ...args: ConstructorParameters<typeof RequirementAgentRunner>\n ) => RequirementAgentRunner = RequirementAgentRunner;\n\n constructor(input: RequirementAgentInput) {\n super();\n this.input = {\n ...input,\n memory: input.memory || new UnconstrainedMemory(),\n tools: input.tools || [],\n requirements: input.requirements || [],\n saveIntermediateSteps: input.saveIntermediateSteps ?? true,\n finalAnswerAsTool: input.finalAnswerAsTool ?? true,\n toolCallChecker: input.toolCallChecker ?? true,\n };\n if (input.middlewares) {\n this.middlewares.push(...input.middlewares);\n }\n }\n\n static {\n this.register();\n }\n\n protected async _run(\n input: RequirementAgentRunInput,\n options: RequirementAgentRunOptions = {},\n run: GetRunContext<typeof this>,\n ): Promise<RequirementAgentOutput> {\n const execution: RequirementAgentExecutionConfig = {\n maxRetriesPerStep: 3,\n totalMaxRetries: 20,\n maxIterations: 20,\n ...this.input.execution,\n ...options.execution,\n };\n\n const toolCallChecker = this.createToolCallChecker();\n\n const runner = new this.runner(\n this.input.llm,\n execution,\n this.input.tools || [],\n this.input.requirements || [],\n input.expectedOutput || null,\n toolCallChecker,\n run,\n this.input.finalAnswerAsTool,\n this.templates,\n );\n\n // Process input messages\n const newMessages = this.processInput(input);\n await runner.addMessages([...this.memory.messages]);\n await runner.addMessages(newMessages);\n\n // Run the agent\n const finalState = await runner.run();\n\n // Update memory\n if (this.input.saveIntermediateSteps) {\n this.memory.reset();\n await this.memory.addMany(finalState.memory.messages);\n } else {\n await this.memory.addMany(newMessages);\n // Add last tool call pair\n const messages = finalState.memory.messages;\n const lastPair = messages.slice(-2);\n await this.memory.addMany(lastPair);\n }\n\n if (!finalState.answer) {\n throw new Error(\"Agent did not produce a final answer\");\n }\n\n return {\n result: finalState.answer,\n memory: finalState.memory,\n state: finalState,\n };\n }\n\n protected processInput(input: RequirementAgentRunInput): Message[] {\n if (!input.prompt) {\n return [];\n }\n\n const userMessage = new UserMessage(\n this.templates.task.render({\n prompt: input.prompt,\n context: input.context,\n expectedOutput: typeof input.expectedOutput === \"string\" ? input.expectedOutput : undefined,\n }),\n );\n\n return [userMessage];\n }\n\n protected createToolCallChecker(): ToolCallChecker {\n const config: ToolCallCheckerConfig = {};\n\n if (typeof this.input.toolCallChecker === \"object\") {\n Object.assign(config, this.input.toolCallChecker);\n }\n\n const checker = new ToolCallChecker(config);\n checker.enabled = this.input.toolCallChecker !== false;\n return checker;\n }\n\n get meta(): AgentMeta {\n const tools = this.input.tools || [];\n\n return {\n name: this.input.name ?? \"Requirement\",\n tools,\n description:\n this.input.description ??\n \"The RequirementAgent is a declarative AI agent implementation that provides predictable, \" +\n \"controlled execution behavior across different language models through rule-based constraints.\",\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 protected get templates(): RequirementAgentTemplates {\n const overrides = this.input.templates || {};\n const finalized = mapObj({\n system: RequirementAgentSystemPrompt,\n task: RequirementAgentTaskPrompt,\n toolError: RequirementAgentToolErrorPrompt,\n toolNoResult: RequirementAgentToolNoResultPrompt,\n } as RequirementAgentTemplates)((\n key,\n defaultTemplate: RequirementAgentTemplates[typeof key],\n ) => {\n const override = overrides[key] ?? defaultTemplate;\n if (override instanceof PromptTemplate) {\n return override;\n }\n return override(defaultTemplate) ?? defaultTemplate;\n });\n\n if (this.input.role || this.input.instructions || this.input.notes) {\n finalized.system.update({\n defaults: pickBy(\n {\n role: this.input.role,\n instructions: isEmptyish(this.input.instructions)\n ? undefined\n : castArray(this.input.instructions)\n .map((v) => `- ${v}`)\n .join(\"\\n\"),\n notes: isEmptyish(this.input.notes)\n ? undefined\n : castArray(this.input.notes)\n .map((v) => `- ${v}`)\n .join(\"\\n\"),\n },\n isDefined,\n ),\n });\n }\n\n return finalized;\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n input: shallowCopy(this.input),\n emitter: this.emitter,\n runnerClass: this.runner,\n };\n }\n\n set memory(memory: BaseMemory) {\n this.input.memory = memory;\n }\n\n get memory(): BaseMemory {\n return this.input.memory!;\n }\n}\n"]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var template_cjs = require('../../template.cjs');
|
|
4
|
+
var types_cjs = require('./types.cjs');
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
const RequirementAgentSystemPrompt = new template_cjs.PromptTemplate({
|
|
9
|
+
schema: types_cjs.RequirementAgentSystemPromptInputSchema,
|
|
10
|
+
template: `# Role
|
|
11
|
+
Assume the role of {{role}}.
|
|
12
|
+
|
|
13
|
+
# Instructions
|
|
14
|
+
{{#instructions}}
|
|
15
|
+
{{{.}}}
|
|
16
|
+
{{/instructions}}
|
|
17
|
+
When the user sends a message, figure out a solution and provide a final answer to the user by calling the '{{finalAnswerName}}' tool.
|
|
18
|
+
{{#finalAnswerSchema}}
|
|
19
|
+
The final answer must fulfill the following.
|
|
20
|
+
|
|
21
|
+
\`\`\`
|
|
22
|
+
{{{finalAnswerSchema}}}
|
|
23
|
+
\`\`\`
|
|
24
|
+
{{/finalAnswerSchema}}
|
|
25
|
+
{{#finalAnswerInstructions}}
|
|
26
|
+
{{{finalAnswerInstructions}}}
|
|
27
|
+
{{/finalAnswerInstructions}}
|
|
28
|
+
|
|
29
|
+
IMPORTANT: The facts mentioned in the final answer must be backed by evidence provided by relevant tool outputs.
|
|
30
|
+
|
|
31
|
+
# Tools
|
|
32
|
+
You must use a tool to retrieve factual or historical information.
|
|
33
|
+
Never use the tool twice with the same input if not stated otherwise.
|
|
34
|
+
|
|
35
|
+
{{#tools.0}}
|
|
36
|
+
{{#tools}}
|
|
37
|
+
Name: {{name}}
|
|
38
|
+
Description: {{description}}
|
|
39
|
+
Allowed: {{allowed}}{{#reason}}
|
|
40
|
+
Reason: {{{.}}}{{/reason}}
|
|
41
|
+
|
|
42
|
+
{{/tools}}
|
|
43
|
+
{{/tools.0}}
|
|
44
|
+
|
|
45
|
+
# Notes
|
|
46
|
+
- Use markdown syntax to format code snippets, links, JSON, tables, images, and files.
|
|
47
|
+
- If the provided task is unclear, ask the user for clarification.
|
|
48
|
+
- Do not refer to tools or tool outputs by name when responding.
|
|
49
|
+
- Always take it one step at a time. Don't try to do multiple things at once.
|
|
50
|
+
- When the tool doesn't give you what you were asking for, you must either use another tool or a different tool input.
|
|
51
|
+
- You should always try a few different approaches before declaring the problem unsolvable.
|
|
52
|
+
- If you can't fully answer the user's question, answer partially and describe what you couldn't achieve.
|
|
53
|
+
- You cannot do complex calculations, computations, or data manipulations without using tools.
|
|
54
|
+
- The current date and time is: {{formatDate}}
|
|
55
|
+
{{#notes}}
|
|
56
|
+
{{{.}}}
|
|
57
|
+
{{/notes}}`,
|
|
58
|
+
defaults: {
|
|
59
|
+
role: "a helpful AI assistant",
|
|
60
|
+
instructions: ""
|
|
61
|
+
},
|
|
62
|
+
functions: {
|
|
63
|
+
formatDate: /* @__PURE__ */ __name(() => (/* @__PURE__ */ new Date()).toISOString().split("T")[0], "formatDate")
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const RequirementAgentTaskPrompt = new template_cjs.PromptTemplate({
|
|
67
|
+
schema: types_cjs.RequirementAgentTaskPromptInputSchema,
|
|
68
|
+
template: `{{#context}}This is the context relevant to the task:
|
|
69
|
+
{{{.}}}
|
|
70
|
+
|
|
71
|
+
{{/context}}
|
|
72
|
+
{{#expectedOutput}}
|
|
73
|
+
This is the expected criteria for your output:
|
|
74
|
+
{{.}}
|
|
75
|
+
|
|
76
|
+
{{/expectedOutput}}
|
|
77
|
+
Your task: {{prompt}}`
|
|
78
|
+
});
|
|
79
|
+
const RequirementAgentToolErrorPrompt = new template_cjs.PromptTemplate({
|
|
80
|
+
schema: types_cjs.RequirementAgentToolErrorPromptInputSchema,
|
|
81
|
+
template: `The tool has failed; the error log is shown below. If the tool cannot accomplish what you want, use a different tool or explain why you can't use it.
|
|
82
|
+
|
|
83
|
+
{{{reason}}}`
|
|
84
|
+
});
|
|
85
|
+
const RequirementAgentToolNoResultPrompt = new template_cjs.PromptTemplate({
|
|
86
|
+
schema: types_cjs.RequirementAgentToolNoResultPromptInputSchema,
|
|
87
|
+
template: `No results were found! Try to reformulate your query or use a different tool.`
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
exports.RequirementAgentSystemPrompt = RequirementAgentSystemPrompt;
|
|
91
|
+
exports.RequirementAgentTaskPrompt = RequirementAgentTaskPrompt;
|
|
92
|
+
exports.RequirementAgentToolErrorPrompt = RequirementAgentToolErrorPrompt;
|
|
93
|
+
exports.RequirementAgentToolNoResultPrompt = RequirementAgentToolNoResultPrompt;
|
|
94
|
+
//# sourceMappingURL=prompts.cjs.map
|
|
95
|
+
//# sourceMappingURL=prompts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/agents/requirement/prompts.ts"],"names":["RequirementAgentSystemPrompt","PromptTemplate","schema","RequirementAgentSystemPromptInputSchema","template","defaults","role","instructions","functions","formatDate","Date","toISOString","split","RequirementAgentTaskPrompt","RequirementAgentTaskPromptInputSchema","RequirementAgentToolErrorPrompt","RequirementAgentToolErrorPromptInputSchema","RequirementAgentToolNoResultPrompt","RequirementAgentToolNoResultPromptInputSchema"],"mappings":";;;;;;;AAaO,MAAMA,4BAAAA,GAA+B,IAAIC,2BAAAA,CAAe;EAC7DC,MAAAA,EAAQC,iDAAAA;EACRC,QAAAA,EAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDVC,QAAAA,EAAU;IACRC,IAAAA,EAAM,wBAAA;IACNC,YAAAA,EAAc;AAChB,GAAA;EACAC,SAAAA,EAAW;IACTC,UAAAA,kBAAY,MAAA,CAAA,MAAA,iBAAM,IAAIC,IAAAA,EAAAA,EAAOC,WAAAA,GAAcC,KAAAA,CAAM,GAAA,CAAA,CAAK,CAAA,CAAA,EAA1C,YAAA;AACd;AACF,CAAA;AAEO,MAAMC,0BAAAA,GAA6B,IAAIZ,2BAAAA,CAAe;EAC3DC,MAAAA,EAAQY,+CAAAA;EACRV,QAAAA,EAAU,CAAA;;;;;;;;;;AAUZ,CAAA;AAEO,MAAMW,+BAAAA,GAAkC,IAAId,2BAAAA,CAAe;EAChEC,MAAAA,EAAQc,oDAAAA;EACRZ,QAAAA,EAAU,CAAA;;;AAGZ,CAAA;AAEO,MAAMa,kCAAAA,GAAqC,IAAIhB,2BAAAA,CAAe;EACnEC,MAAAA,EAAQgB,uDAAAA;EACRd,QAAAA,EAAU,CAAA,6EAAA;AACZ,CAAA","file":"prompts.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentSystemPromptInputSchema,\n RequirementAgentTaskPromptInputSchema,\n RequirementAgentToolErrorPromptInputSchema,\n RequirementAgentToolNoResultPromptInputSchema,\n} from \"@/agents/requirement/types.js\";\n\nexport const RequirementAgentSystemPrompt = new PromptTemplate({\n schema: RequirementAgentSystemPromptInputSchema,\n template: `# Role\nAssume the role of {{role}}.\n\n# Instructions\n{{#instructions}}\n{{{.}}}\n{{/instructions}}\nWhen the user sends a message, figure out a solution and provide a final answer to the user by calling the '{{finalAnswerName}}' tool.\n{{#finalAnswerSchema}}\nThe final answer must fulfill the following.\n\n\\`\\`\\`\n{{{finalAnswerSchema}}}\n\\`\\`\\`\n{{/finalAnswerSchema}}\n{{#finalAnswerInstructions}}\n{{{finalAnswerInstructions}}}\n{{/finalAnswerInstructions}}\n\nIMPORTANT: The facts mentioned in the final answer must be backed by evidence provided by relevant tool outputs.\n\n# Tools\nYou must use a tool to retrieve factual or historical information.\nNever use the tool twice with the same input if not stated otherwise.\n\n{{#tools.0}}\n{{#tools}}\nName: {{name}}\nDescription: {{description}}\nAllowed: {{allowed}}{{#reason}}\nReason: {{{.}}}{{/reason}}\n\n{{/tools}}\n{{/tools.0}}\n\n# Notes\n- Use markdown syntax to format code snippets, links, JSON, tables, images, and files.\n- If the provided task is unclear, ask the user for clarification.\n- Do not refer to tools or tool outputs by name when responding.\n- Always take it one step at a time. Don't try to do multiple things at once.\n- When the tool doesn't give you what you were asking for, you must either use another tool or a different tool input.\n- You should always try a few different approaches before declaring the problem unsolvable.\n- If you can't fully answer the user's question, answer partially and describe what you couldn't achieve.\n- You cannot do complex calculations, computations, or data manipulations without using tools.\n- The current date and time is: {{formatDate}}\n{{#notes}}\n{{{.}}}\n{{/notes}}`,\n defaults: {\n role: \"a helpful AI assistant\",\n instructions: \"\",\n },\n functions: {\n formatDate: () => new Date().toISOString().split(\"T\")[0],\n },\n});\n\nexport const RequirementAgentTaskPrompt = new PromptTemplate({\n schema: RequirementAgentTaskPromptInputSchema,\n template: `{{#context}}This is the context relevant to the task:\n{{{.}}}\n\n{{/context}}\n{{#expectedOutput}}\nThis is the expected criteria for your output:\n{{.}}\n\n{{/expectedOutput}}\nYour task: {{prompt}}`,\n});\n\nexport const RequirementAgentToolErrorPrompt = new PromptTemplate({\n schema: RequirementAgentToolErrorPromptInputSchema,\n template: `The tool has failed; the error log is shown below. If the tool cannot accomplish what you want, use a different tool or explain why you can't use it.\n\n{{{reason}}}`,\n});\n\nexport const RequirementAgentToolNoResultPrompt = new PromptTemplate({\n schema: RequirementAgentToolNoResultPromptInputSchema,\n template: `No results were found! Try to reformulate your query or use a different tool.`,\n});\n"]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import * as zod from 'zod';
|
|
2
|
+
import { PromptTemplate } from '../../template.cjs';
|
|
3
|
+
import '../../errors.cjs';
|
|
4
|
+
import '../../internals/types.cjs';
|
|
5
|
+
import '../../internals/helpers/guards.cjs';
|
|
6
|
+
import '../../internals/serializable.cjs';
|
|
7
|
+
import 'ajv';
|
|
8
|
+
|
|
9
|
+
declare const RequirementAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
10
|
+
role: zod.ZodOptional<zod.ZodString>;
|
|
11
|
+
instructions: zod.ZodOptional<zod.ZodString>;
|
|
12
|
+
notes: zod.ZodOptional<zod.ZodString>;
|
|
13
|
+
finalAnswerName: zod.ZodString;
|
|
14
|
+
finalAnswerSchema: zod.ZodOptional<zod.ZodString>;
|
|
15
|
+
finalAnswerInstructions: zod.ZodOptional<zod.ZodString>;
|
|
16
|
+
tools: zod.ZodArray<zod.ZodObject<{
|
|
17
|
+
name: zod.ZodString;
|
|
18
|
+
description: zod.ZodString;
|
|
19
|
+
inputSchema: zod.ZodString;
|
|
20
|
+
allowed: zod.ZodString;
|
|
21
|
+
reason: zod.ZodOptional<zod.ZodString>;
|
|
22
|
+
}, "strip", zod.ZodTypeAny, {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
inputSchema: string;
|
|
26
|
+
allowed: string;
|
|
27
|
+
reason?: string | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
inputSchema: string;
|
|
32
|
+
allowed: string;
|
|
33
|
+
reason?: string | undefined;
|
|
34
|
+
}>, "many">;
|
|
35
|
+
}, "strip", zod.ZodTypeAny, {
|
|
36
|
+
tools: {
|
|
37
|
+
name: string;
|
|
38
|
+
description: string;
|
|
39
|
+
inputSchema: string;
|
|
40
|
+
allowed: string;
|
|
41
|
+
reason?: string | undefined;
|
|
42
|
+
}[];
|
|
43
|
+
finalAnswerName: string;
|
|
44
|
+
role?: string | undefined;
|
|
45
|
+
instructions?: string | undefined;
|
|
46
|
+
notes?: string | undefined;
|
|
47
|
+
finalAnswerSchema?: string | undefined;
|
|
48
|
+
finalAnswerInstructions?: string | undefined;
|
|
49
|
+
}, {
|
|
50
|
+
tools: {
|
|
51
|
+
name: string;
|
|
52
|
+
description: string;
|
|
53
|
+
inputSchema: string;
|
|
54
|
+
allowed: string;
|
|
55
|
+
reason?: string | undefined;
|
|
56
|
+
}[];
|
|
57
|
+
finalAnswerName: string;
|
|
58
|
+
role?: string | undefined;
|
|
59
|
+
instructions?: string | undefined;
|
|
60
|
+
notes?: string | undefined;
|
|
61
|
+
finalAnswerSchema?: string | undefined;
|
|
62
|
+
finalAnswerInstructions?: string | undefined;
|
|
63
|
+
}>>;
|
|
64
|
+
declare const RequirementAgentTaskPrompt: PromptTemplate<zod.ZodObject<{
|
|
65
|
+
prompt: zod.ZodString;
|
|
66
|
+
context: zod.ZodOptional<zod.ZodString>;
|
|
67
|
+
expectedOutput: zod.ZodOptional<zod.ZodString>;
|
|
68
|
+
}, "strip", zod.ZodTypeAny, {
|
|
69
|
+
prompt: string;
|
|
70
|
+
context?: string | undefined;
|
|
71
|
+
expectedOutput?: string | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
prompt: string;
|
|
74
|
+
context?: string | undefined;
|
|
75
|
+
expectedOutput?: string | undefined;
|
|
76
|
+
}>>;
|
|
77
|
+
declare const RequirementAgentToolErrorPrompt: PromptTemplate<zod.ZodObject<{
|
|
78
|
+
reason: zod.ZodString;
|
|
79
|
+
}, "strip", zod.ZodTypeAny, {
|
|
80
|
+
reason: string;
|
|
81
|
+
}, {
|
|
82
|
+
reason: string;
|
|
83
|
+
}>>;
|
|
84
|
+
declare const RequirementAgentToolNoResultPrompt: PromptTemplate<zod.ZodObject<{
|
|
85
|
+
toolCall: zod.ZodObject<{
|
|
86
|
+
tool: zod.ZodOptional<zod.ZodAny>;
|
|
87
|
+
input: zod.ZodUnknown;
|
|
88
|
+
}, "strip", zod.ZodTypeAny, {
|
|
89
|
+
tool?: any;
|
|
90
|
+
input?: unknown;
|
|
91
|
+
}, {
|
|
92
|
+
tool?: any;
|
|
93
|
+
input?: unknown;
|
|
94
|
+
}>;
|
|
95
|
+
}, "strip", zod.ZodTypeAny, {
|
|
96
|
+
toolCall: {
|
|
97
|
+
tool?: any;
|
|
98
|
+
input?: unknown;
|
|
99
|
+
};
|
|
100
|
+
}, {
|
|
101
|
+
toolCall: {
|
|
102
|
+
tool?: any;
|
|
103
|
+
input?: unknown;
|
|
104
|
+
};
|
|
105
|
+
}>>;
|
|
106
|
+
|
|
107
|
+
export { RequirementAgentSystemPrompt, RequirementAgentTaskPrompt, RequirementAgentToolErrorPrompt, RequirementAgentToolNoResultPrompt };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import * as zod from 'zod';
|
|
2
|
+
import { PromptTemplate } from '../../template.js';
|
|
3
|
+
import '../../errors.js';
|
|
4
|
+
import '../../internals/types.js';
|
|
5
|
+
import '../../internals/helpers/guards.js';
|
|
6
|
+
import '../../internals/serializable.js';
|
|
7
|
+
import 'ajv';
|
|
8
|
+
|
|
9
|
+
declare const RequirementAgentSystemPrompt: PromptTemplate<zod.ZodObject<{
|
|
10
|
+
role: zod.ZodOptional<zod.ZodString>;
|
|
11
|
+
instructions: zod.ZodOptional<zod.ZodString>;
|
|
12
|
+
notes: zod.ZodOptional<zod.ZodString>;
|
|
13
|
+
finalAnswerName: zod.ZodString;
|
|
14
|
+
finalAnswerSchema: zod.ZodOptional<zod.ZodString>;
|
|
15
|
+
finalAnswerInstructions: zod.ZodOptional<zod.ZodString>;
|
|
16
|
+
tools: zod.ZodArray<zod.ZodObject<{
|
|
17
|
+
name: zod.ZodString;
|
|
18
|
+
description: zod.ZodString;
|
|
19
|
+
inputSchema: zod.ZodString;
|
|
20
|
+
allowed: zod.ZodString;
|
|
21
|
+
reason: zod.ZodOptional<zod.ZodString>;
|
|
22
|
+
}, "strip", zod.ZodTypeAny, {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
inputSchema: string;
|
|
26
|
+
allowed: string;
|
|
27
|
+
reason?: string | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
inputSchema: string;
|
|
32
|
+
allowed: string;
|
|
33
|
+
reason?: string | undefined;
|
|
34
|
+
}>, "many">;
|
|
35
|
+
}, "strip", zod.ZodTypeAny, {
|
|
36
|
+
tools: {
|
|
37
|
+
name: string;
|
|
38
|
+
description: string;
|
|
39
|
+
inputSchema: string;
|
|
40
|
+
allowed: string;
|
|
41
|
+
reason?: string | undefined;
|
|
42
|
+
}[];
|
|
43
|
+
finalAnswerName: string;
|
|
44
|
+
role?: string | undefined;
|
|
45
|
+
instructions?: string | undefined;
|
|
46
|
+
notes?: string | undefined;
|
|
47
|
+
finalAnswerSchema?: string | undefined;
|
|
48
|
+
finalAnswerInstructions?: string | undefined;
|
|
49
|
+
}, {
|
|
50
|
+
tools: {
|
|
51
|
+
name: string;
|
|
52
|
+
description: string;
|
|
53
|
+
inputSchema: string;
|
|
54
|
+
allowed: string;
|
|
55
|
+
reason?: string | undefined;
|
|
56
|
+
}[];
|
|
57
|
+
finalAnswerName: string;
|
|
58
|
+
role?: string | undefined;
|
|
59
|
+
instructions?: string | undefined;
|
|
60
|
+
notes?: string | undefined;
|
|
61
|
+
finalAnswerSchema?: string | undefined;
|
|
62
|
+
finalAnswerInstructions?: string | undefined;
|
|
63
|
+
}>>;
|
|
64
|
+
declare const RequirementAgentTaskPrompt: PromptTemplate<zod.ZodObject<{
|
|
65
|
+
prompt: zod.ZodString;
|
|
66
|
+
context: zod.ZodOptional<zod.ZodString>;
|
|
67
|
+
expectedOutput: zod.ZodOptional<zod.ZodString>;
|
|
68
|
+
}, "strip", zod.ZodTypeAny, {
|
|
69
|
+
prompt: string;
|
|
70
|
+
context?: string | undefined;
|
|
71
|
+
expectedOutput?: string | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
prompt: string;
|
|
74
|
+
context?: string | undefined;
|
|
75
|
+
expectedOutput?: string | undefined;
|
|
76
|
+
}>>;
|
|
77
|
+
declare const RequirementAgentToolErrorPrompt: PromptTemplate<zod.ZodObject<{
|
|
78
|
+
reason: zod.ZodString;
|
|
79
|
+
}, "strip", zod.ZodTypeAny, {
|
|
80
|
+
reason: string;
|
|
81
|
+
}, {
|
|
82
|
+
reason: string;
|
|
83
|
+
}>>;
|
|
84
|
+
declare const RequirementAgentToolNoResultPrompt: PromptTemplate<zod.ZodObject<{
|
|
85
|
+
toolCall: zod.ZodObject<{
|
|
86
|
+
tool: zod.ZodOptional<zod.ZodAny>;
|
|
87
|
+
input: zod.ZodUnknown;
|
|
88
|
+
}, "strip", zod.ZodTypeAny, {
|
|
89
|
+
tool?: any;
|
|
90
|
+
input?: unknown;
|
|
91
|
+
}, {
|
|
92
|
+
tool?: any;
|
|
93
|
+
input?: unknown;
|
|
94
|
+
}>;
|
|
95
|
+
}, "strip", zod.ZodTypeAny, {
|
|
96
|
+
toolCall: {
|
|
97
|
+
tool?: any;
|
|
98
|
+
input?: unknown;
|
|
99
|
+
};
|
|
100
|
+
}, {
|
|
101
|
+
toolCall: {
|
|
102
|
+
tool?: any;
|
|
103
|
+
input?: unknown;
|
|
104
|
+
};
|
|
105
|
+
}>>;
|
|
106
|
+
|
|
107
|
+
export { RequirementAgentSystemPrompt, RequirementAgentTaskPrompt, RequirementAgentToolErrorPrompt, RequirementAgentToolNoResultPrompt };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { PromptTemplate } from '../../template.js';
|
|
2
|
+
import { RequirementAgentSystemPromptInputSchema, RequirementAgentTaskPromptInputSchema, RequirementAgentToolErrorPromptInputSchema, RequirementAgentToolNoResultPromptInputSchema } from './types.js';
|
|
3
|
+
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
const RequirementAgentSystemPrompt = new PromptTemplate({
|
|
7
|
+
schema: RequirementAgentSystemPromptInputSchema,
|
|
8
|
+
template: `# Role
|
|
9
|
+
Assume the role of {{role}}.
|
|
10
|
+
|
|
11
|
+
# Instructions
|
|
12
|
+
{{#instructions}}
|
|
13
|
+
{{{.}}}
|
|
14
|
+
{{/instructions}}
|
|
15
|
+
When the user sends a message, figure out a solution and provide a final answer to the user by calling the '{{finalAnswerName}}' tool.
|
|
16
|
+
{{#finalAnswerSchema}}
|
|
17
|
+
The final answer must fulfill the following.
|
|
18
|
+
|
|
19
|
+
\`\`\`
|
|
20
|
+
{{{finalAnswerSchema}}}
|
|
21
|
+
\`\`\`
|
|
22
|
+
{{/finalAnswerSchema}}
|
|
23
|
+
{{#finalAnswerInstructions}}
|
|
24
|
+
{{{finalAnswerInstructions}}}
|
|
25
|
+
{{/finalAnswerInstructions}}
|
|
26
|
+
|
|
27
|
+
IMPORTANT: The facts mentioned in the final answer must be backed by evidence provided by relevant tool outputs.
|
|
28
|
+
|
|
29
|
+
# Tools
|
|
30
|
+
You must use a tool to retrieve factual or historical information.
|
|
31
|
+
Never use the tool twice with the same input if not stated otherwise.
|
|
32
|
+
|
|
33
|
+
{{#tools.0}}
|
|
34
|
+
{{#tools}}
|
|
35
|
+
Name: {{name}}
|
|
36
|
+
Description: {{description}}
|
|
37
|
+
Allowed: {{allowed}}{{#reason}}
|
|
38
|
+
Reason: {{{.}}}{{/reason}}
|
|
39
|
+
|
|
40
|
+
{{/tools}}
|
|
41
|
+
{{/tools.0}}
|
|
42
|
+
|
|
43
|
+
# Notes
|
|
44
|
+
- Use markdown syntax to format code snippets, links, JSON, tables, images, and files.
|
|
45
|
+
- If the provided task is unclear, ask the user for clarification.
|
|
46
|
+
- Do not refer to tools or tool outputs by name when responding.
|
|
47
|
+
- Always take it one step at a time. Don't try to do multiple things at once.
|
|
48
|
+
- When the tool doesn't give you what you were asking for, you must either use another tool or a different tool input.
|
|
49
|
+
- You should always try a few different approaches before declaring the problem unsolvable.
|
|
50
|
+
- If you can't fully answer the user's question, answer partially and describe what you couldn't achieve.
|
|
51
|
+
- You cannot do complex calculations, computations, or data manipulations without using tools.
|
|
52
|
+
- The current date and time is: {{formatDate}}
|
|
53
|
+
{{#notes}}
|
|
54
|
+
{{{.}}}
|
|
55
|
+
{{/notes}}`,
|
|
56
|
+
defaults: {
|
|
57
|
+
role: "a helpful AI assistant",
|
|
58
|
+
instructions: ""
|
|
59
|
+
},
|
|
60
|
+
functions: {
|
|
61
|
+
formatDate: /* @__PURE__ */ __name(() => (/* @__PURE__ */ new Date()).toISOString().split("T")[0], "formatDate")
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const RequirementAgentTaskPrompt = new PromptTemplate({
|
|
65
|
+
schema: RequirementAgentTaskPromptInputSchema,
|
|
66
|
+
template: `{{#context}}This is the context relevant to the task:
|
|
67
|
+
{{{.}}}
|
|
68
|
+
|
|
69
|
+
{{/context}}
|
|
70
|
+
{{#expectedOutput}}
|
|
71
|
+
This is the expected criteria for your output:
|
|
72
|
+
{{.}}
|
|
73
|
+
|
|
74
|
+
{{/expectedOutput}}
|
|
75
|
+
Your task: {{prompt}}`
|
|
76
|
+
});
|
|
77
|
+
const RequirementAgentToolErrorPrompt = new PromptTemplate({
|
|
78
|
+
schema: RequirementAgentToolErrorPromptInputSchema,
|
|
79
|
+
template: `The tool has failed; the error log is shown below. If the tool cannot accomplish what you want, use a different tool or explain why you can't use it.
|
|
80
|
+
|
|
81
|
+
{{{reason}}}`
|
|
82
|
+
});
|
|
83
|
+
const RequirementAgentToolNoResultPrompt = new PromptTemplate({
|
|
84
|
+
schema: RequirementAgentToolNoResultPromptInputSchema,
|
|
85
|
+
template: `No results were found! Try to reformulate your query or use a different tool.`
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
export { RequirementAgentSystemPrompt, RequirementAgentTaskPrompt, RequirementAgentToolErrorPrompt, RequirementAgentToolNoResultPrompt };
|
|
89
|
+
//# sourceMappingURL=prompts.js.map
|
|
90
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/agents/requirement/prompts.ts"],"names":["RequirementAgentSystemPrompt","PromptTemplate","schema","RequirementAgentSystemPromptInputSchema","template","defaults","role","instructions","functions","formatDate","Date","toISOString","split","RequirementAgentTaskPrompt","RequirementAgentTaskPromptInputSchema","RequirementAgentToolErrorPrompt","RequirementAgentToolErrorPromptInputSchema","RequirementAgentToolNoResultPrompt","RequirementAgentToolNoResultPromptInputSchema"],"mappings":";;;;;AAaO,MAAMA,4BAAAA,GAA+B,IAAIC,cAAAA,CAAe;EAC7DC,MAAAA,EAAQC,uCAAAA;EACRC,QAAAA,EAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDVC,QAAAA,EAAU;IACRC,IAAAA,EAAM,wBAAA;IACNC,YAAAA,EAAc;AAChB,GAAA;EACAC,SAAAA,EAAW;IACTC,UAAAA,kBAAY,MAAA,CAAA,MAAA,iBAAM,IAAIC,IAAAA,EAAAA,EAAOC,WAAAA,GAAcC,KAAAA,CAAM,GAAA,CAAA,CAAK,CAAA,CAAA,EAA1C,YAAA;AACd;AACF,CAAA;AAEO,MAAMC,0BAAAA,GAA6B,IAAIZ,cAAAA,CAAe;EAC3DC,MAAAA,EAAQY,qCAAAA;EACRV,QAAAA,EAAU,CAAA;;;;;;;;;;AAUZ,CAAA;AAEO,MAAMW,+BAAAA,GAAkC,IAAId,cAAAA,CAAe;EAChEC,MAAAA,EAAQc,0CAAAA;EACRZ,QAAAA,EAAU,CAAA;;;AAGZ,CAAA;AAEO,MAAMa,kCAAAA,GAAqC,IAAIhB,cAAAA,CAAe;EACnEC,MAAAA,EAAQgB,6CAAAA;EACRd,QAAAA,EAAU,CAAA,6EAAA;AACZ,CAAA","file":"prompts.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { PromptTemplate } from \"@/template.js\";\nimport {\n RequirementAgentSystemPromptInputSchema,\n RequirementAgentTaskPromptInputSchema,\n RequirementAgentToolErrorPromptInputSchema,\n RequirementAgentToolNoResultPromptInputSchema,\n} from \"@/agents/requirement/types.js\";\n\nexport const RequirementAgentSystemPrompt = new PromptTemplate({\n schema: RequirementAgentSystemPromptInputSchema,\n template: `# Role\nAssume the role of {{role}}.\n\n# Instructions\n{{#instructions}}\n{{{.}}}\n{{/instructions}}\nWhen the user sends a message, figure out a solution and provide a final answer to the user by calling the '{{finalAnswerName}}' tool.\n{{#finalAnswerSchema}}\nThe final answer must fulfill the following.\n\n\\`\\`\\`\n{{{finalAnswerSchema}}}\n\\`\\`\\`\n{{/finalAnswerSchema}}\n{{#finalAnswerInstructions}}\n{{{finalAnswerInstructions}}}\n{{/finalAnswerInstructions}}\n\nIMPORTANT: The facts mentioned in the final answer must be backed by evidence provided by relevant tool outputs.\n\n# Tools\nYou must use a tool to retrieve factual or historical information.\nNever use the tool twice with the same input if not stated otherwise.\n\n{{#tools.0}}\n{{#tools}}\nName: {{name}}\nDescription: {{description}}\nAllowed: {{allowed}}{{#reason}}\nReason: {{{.}}}{{/reason}}\n\n{{/tools}}\n{{/tools.0}}\n\n# Notes\n- Use markdown syntax to format code snippets, links, JSON, tables, images, and files.\n- If the provided task is unclear, ask the user for clarification.\n- Do not refer to tools or tool outputs by name when responding.\n- Always take it one step at a time. Don't try to do multiple things at once.\n- When the tool doesn't give you what you were asking for, you must either use another tool or a different tool input.\n- You should always try a few different approaches before declaring the problem unsolvable.\n- If you can't fully answer the user's question, answer partially and describe what you couldn't achieve.\n- You cannot do complex calculations, computations, or data manipulations without using tools.\n- The current date and time is: {{formatDate}}\n{{#notes}}\n{{{.}}}\n{{/notes}}`,\n defaults: {\n role: \"a helpful AI assistant\",\n instructions: \"\",\n },\n functions: {\n formatDate: () => new Date().toISOString().split(\"T\")[0],\n },\n});\n\nexport const RequirementAgentTaskPrompt = new PromptTemplate({\n schema: RequirementAgentTaskPromptInputSchema,\n template: `{{#context}}This is the context relevant to the task:\n{{{.}}}\n\n{{/context}}\n{{#expectedOutput}}\nThis is the expected criteria for your output:\n{{.}}\n\n{{/expectedOutput}}\nYour task: {{prompt}}`,\n});\n\nexport const RequirementAgentToolErrorPrompt = new PromptTemplate({\n schema: RequirementAgentToolErrorPromptInputSchema,\n template: `The tool has failed; the error log is shown below. If the tool cannot accomplish what you want, use a different tool or explain why you can't use it.\n\n{{{reason}}}`,\n});\n\nexport const RequirementAgentToolNoResultPrompt = new PromptTemplate({\n schema: RequirementAgentToolNoResultPromptInputSchema,\n template: `No results were found! Try to reformulate your query or use a different tool.`,\n});\n"]}
|