@modular-prompt/process 0.3.1 → 0.3.3
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/workflows/agentic-workflow/agentic-workflow.d.ts.map +1 -1
- package/dist/workflows/agentic-workflow/agentic-workflow.js +56 -18
- package/dist/workflows/agentic-workflow/agentic-workflow.js.map +1 -1
- package/dist/workflows/agentic-workflow/process/builtin-tools.d.ts +5 -11
- package/dist/workflows/agentic-workflow/process/builtin-tools.d.ts.map +1 -1
- package/dist/workflows/agentic-workflow/process/builtin-tools.js +53 -44
- package/dist/workflows/agentic-workflow/process/builtin-tools.js.map +1 -1
- package/dist/workflows/agentic-workflow/process/query-with-tools.d.ts +13 -5
- package/dist/workflows/agentic-workflow/process/query-with-tools.d.ts.map +1 -1
- package/dist/workflows/agentic-workflow/process/query-with-tools.js +82 -34
- package/dist/workflows/agentic-workflow/process/query-with-tools.js.map +1 -1
- package/dist/workflows/agentic-workflow/task-types/execution-tasks.d.ts +2 -2
- package/dist/workflows/agentic-workflow/task-types/execution-tasks.d.ts.map +1 -1
- package/dist/workflows/agentic-workflow/task-types/execution-tasks.js +13 -21
- package/dist/workflows/agentic-workflow/task-types/execution-tasks.js.map +1 -1
- package/dist/workflows/agentic-workflow/task-types/index.d.ts +10 -4
- package/dist/workflows/agentic-workflow/task-types/index.d.ts.map +1 -1
- package/dist/workflows/agentic-workflow/task-types/index.js +53 -15
- package/dist/workflows/agentic-workflow/task-types/index.js.map +1 -1
- package/dist/workflows/agentic-workflow/task-types/output.d.ts +3 -3
- package/dist/workflows/agentic-workflow/task-types/output.d.ts.map +1 -1
- package/dist/workflows/agentic-workflow/task-types/output.js +4 -12
- package/dist/workflows/agentic-workflow/task-types/output.js.map +1 -1
- package/dist/workflows/agentic-workflow/task-types/planning.d.ts +12 -2
- package/dist/workflows/agentic-workflow/task-types/planning.d.ts.map +1 -1
- package/dist/workflows/agentic-workflow/task-types/planning.js +90 -26
- package/dist/workflows/agentic-workflow/task-types/planning.js.map +1 -1
- package/dist/workflows/agentic-workflow/types.d.ts +4 -5
- package/dist/workflows/agentic-workflow/types.d.ts.map +1 -1
- package/dist/workflows/agentic-workflow/types.js +2 -2
- package/dist/workflows/agentic-workflow/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentic-workflow.d.ts","sourceRoot":"","sources":["../../../src/workflows/agentic-workflow/agentic-workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"agentic-workflow.d.ts","sourceRoot":"","sources":["../../../src/workflows/agentic-workflow/agentic-workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,YAAY,EAA0C,MAAM,sBAAsB,CAAC;AAGjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAEV,sBAAsB,EACtB,kBAAkB,EAKnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AAsLrE,wBAAsB,cAAc,CAAC,CAAC,EACpC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,CAAC,EACV,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAyI7C"}
|
|
@@ -14,7 +14,8 @@ import { Logger } from '@modular-prompt/utils';
|
|
|
14
14
|
import { DEFAULT_DRIVER_ROLE } from './types.js';
|
|
15
15
|
import { resolveDriver } from '../driver-input.js';
|
|
16
16
|
import { getTaskTypeConfig, taskCommon, MAX_TOKENS_VALUES } from './task-types/index.js';
|
|
17
|
-
import {
|
|
17
|
+
import { replanningModule } from './task-types/planning.js';
|
|
18
|
+
import { createPlanningTools, createExecutionBuiltinTools, getBuiltinToolDefinitions, } from './process/builtin-tools.js';
|
|
18
19
|
import { queryWithTools, rethrowAsWorkflowError } from './process/query-with-tools.js';
|
|
19
20
|
const logger = new Logger({ prefix: 'process', context: 'agentic' });
|
|
20
21
|
/**
|
|
@@ -24,6 +25,18 @@ const logger = new Logger({ prefix: 'process', context: 'agentic' });
|
|
|
24
25
|
function stripThinkBlocks(text) {
|
|
25
26
|
return text.replace(/<think>[\s\S]*?<\/think>\s*/g, '').replace(/^[\s\S]*?<\/think>\s*/g, '').trim();
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if the resolved user module's messages end with a tool result.
|
|
30
|
+
* This indicates a re-planning scenario where a previous workflow broke
|
|
31
|
+
* on an external tool call and the result is now available.
|
|
32
|
+
*/
|
|
33
|
+
function hasTrailingToolResult(userModule) {
|
|
34
|
+
const messages = userModule.messages;
|
|
35
|
+
if (!messages || messages.length === 0)
|
|
36
|
+
return false;
|
|
37
|
+
const last = messages[messages.length - 1];
|
|
38
|
+
return typeof last === 'object' && last !== null && 'role' in last && last.role === 'tool';
|
|
39
|
+
}
|
|
27
40
|
// ---------------------------------------------------------------------------
|
|
28
41
|
// Bootstrap
|
|
29
42
|
// ---------------------------------------------------------------------------
|
|
@@ -55,22 +68,22 @@ function bootstrap(module, enablePlanning) {
|
|
|
55
68
|
/**
|
|
56
69
|
* Get builtin tools for a task based on its type config.
|
|
57
70
|
*/
|
|
58
|
-
function getBuiltinToolsForTask(taskType, taskList, currentIndex,
|
|
71
|
+
function getBuiltinToolsForTask(taskType, taskList, currentIndex, _context) {
|
|
59
72
|
const config = getTaskTypeConfig(taskType);
|
|
60
73
|
const toolNames = new Set(config.builtinToolNames);
|
|
61
74
|
const allTools = [];
|
|
62
|
-
if (toolNames.has('
|
|
75
|
+
if (toolNames.has('__register_tasks')) {
|
|
63
76
|
allTools.push(...createPlanningTools(taskList, currentIndex));
|
|
64
77
|
}
|
|
65
|
-
if (toolNames.has('
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
if (toolNames.has('__time')) {
|
|
69
|
-
// createExecutionBuiltinTools returns [__insert_tasks, __time]
|
|
70
|
-
// We only want __time if __insert_tasks is not already added
|
|
78
|
+
if (toolNames.has('__replan') || toolNames.has('__time')) {
|
|
79
|
+
// createExecutionBuiltinTools returns [__replan, __time]
|
|
71
80
|
const execTools = createExecutionBuiltinTools(taskList, currentIndex);
|
|
72
|
-
|
|
73
|
-
|
|
81
|
+
if (toolNames.has('__replan')) {
|
|
82
|
+
allTools.push(...execTools.filter(t => t.definition.name === '__replan'));
|
|
83
|
+
}
|
|
84
|
+
if (toolNames.has('__time')) {
|
|
85
|
+
allTools.push(...execTools.filter(t => t.definition.name === '__time'));
|
|
86
|
+
}
|
|
74
87
|
}
|
|
75
88
|
return allTools;
|
|
76
89
|
}
|
|
@@ -88,12 +101,20 @@ async function executeTask(driver, userModule, context, task, taskIndex, taskLis
|
|
|
88
101
|
: {
|
|
89
102
|
objective: userModule.objective,
|
|
90
103
|
terms: userModule.terms,
|
|
91
|
-
state: userModule.state,
|
|
92
104
|
};
|
|
93
105
|
// Merge and resolve: planning has its own terms/methodology, others use taskCommon
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
106
|
+
let resolved;
|
|
107
|
+
if (task.taskType === 'planning') {
|
|
108
|
+
// Use replanningModule if there are existing deliverables (executionLog or trailing tool result)
|
|
109
|
+
const hasExistingDeliverables = (context.executionLog && context.executionLog.length > 0) || hasTrailingToolResult(userModule);
|
|
110
|
+
const planningMerged = hasExistingDeliverables
|
|
111
|
+
? merge(workflowBase, taskConfig.module, replanningModule)
|
|
112
|
+
: merge(workflowBase, taskConfig.module);
|
|
113
|
+
resolved = resolve(planningMerged, context);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
resolved = resolve(merge(workflowBase, taskCommon, taskConfig.module), context);
|
|
117
|
+
}
|
|
97
118
|
const builtinTools = getBuiltinToolsForTask(task.taskType, taskList, taskIndex, context);
|
|
98
119
|
const externalToolDefs = externalTools.map(t => t.definition);
|
|
99
120
|
const allToolNames = [...builtinTools.map(t => t.definition.name), ...externalToolDefs.map(t => t.name)];
|
|
@@ -109,6 +130,7 @@ async function executeTask(driver, userModule, context, task, taskIndex, taskLis
|
|
|
109
130
|
});
|
|
110
131
|
taskLogger.info('[end]');
|
|
111
132
|
return {
|
|
133
|
+
taskName: task.name,
|
|
112
134
|
taskType: task.taskType,
|
|
113
135
|
instruction: task.instruction,
|
|
114
136
|
result: stripThinkBlocks(result.content),
|
|
@@ -140,8 +162,7 @@ export async function agenticProcess(driver, module, context, options = {}) {
|
|
|
140
162
|
taskList: resumeState?.taskList ?? bootstrap(userModule, enablePlanning),
|
|
141
163
|
executionLog: resumeState?.executionLog ? [...resumeState.executionLog] : [],
|
|
142
164
|
currentTaskIndex: 0,
|
|
143
|
-
|
|
144
|
-
// planningがタスク設計時にツールの存在を把握し、適切なtoolCallタスクを計画できるようにする
|
|
165
|
+
// planningがタスク設計時にツールの存在を把握し、適切なactタスクを計画できるようにする
|
|
145
166
|
availableTools: [
|
|
146
167
|
...getBuiltinToolDefinitions(),
|
|
147
168
|
...tools.map(t => t.definition),
|
|
@@ -160,11 +181,29 @@ export async function agenticProcess(driver, module, context, options = {}) {
|
|
|
160
181
|
internalContext.currentTaskIndex = i;
|
|
161
182
|
const logEntry = await executeTask(driver, userModule, internalContext, task, i, taskList, tools);
|
|
162
183
|
executionLog.push(logEntry);
|
|
184
|
+
// Check if __replan was called
|
|
185
|
+
const hasReplanCall = logEntry.toolCallLog?.some(call => call.name === '__replan');
|
|
186
|
+
if (hasReplanCall) {
|
|
187
|
+
logger.info('[replan] Re-planning requested, clearing remaining tasks and inserting planning task');
|
|
188
|
+
// Clear remaining tasks (keep current and all previous)
|
|
189
|
+
taskList.splice(i + 1);
|
|
190
|
+
// Insert new planning task
|
|
191
|
+
taskList.push({
|
|
192
|
+
instruction: 'Re-analyze the prompt and register tasks based on current progress',
|
|
193
|
+
taskType: 'planning',
|
|
194
|
+
});
|
|
195
|
+
// Continue to execute the planning task
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
163
198
|
// Stop workflow if external tool calls are pending
|
|
164
199
|
if (logEntry.pendingToolCalls && logEntry.pendingToolCalls.length > 0) {
|
|
165
200
|
logger.info('[suspended] External tool call requested');
|
|
166
201
|
break;
|
|
167
202
|
}
|
|
203
|
+
// Stop after output task completes
|
|
204
|
+
if (task.taskType === 'output') {
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
168
207
|
}
|
|
169
208
|
// Check if workflow was suspended by external tool calls
|
|
170
209
|
const lastExecuted = executionLog[executionLog.length - 1];
|
|
@@ -205,7 +244,6 @@ export async function agenticProcess(driver, module, context, options = {}) {
|
|
|
205
244
|
context: {
|
|
206
245
|
taskList,
|
|
207
246
|
executionLog,
|
|
208
|
-
state: internalContext.state,
|
|
209
247
|
},
|
|
210
248
|
metadata: {
|
|
211
249
|
planTasks: taskList.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentic-workflow.js","sourceRoot":"","sources":["../../../src/workflows/agentic-workflow/agentic-workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAW/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAoB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"agentic-workflow.js","sourceRoot":"","sources":["../../../src/workflows/agentic-workflow/agentic-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agentic workflow 組み込みツール定義 (v2)
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
5
|
-
* -
|
|
4
|
+
* - __register_tasks: タスク登録(planning タスクから利用可能)
|
|
5
|
+
* - __replan: 再プランニング要求(execution タスクから利用可能)
|
|
6
6
|
* - __time: 現在時刻取得
|
|
7
7
|
*/
|
|
8
8
|
import type { ToolDefinition } from '@modular-prompt/driver';
|
|
@@ -15,26 +15,20 @@ export declare function isBuiltinTool(name: string): boolean;
|
|
|
15
15
|
/**
|
|
16
16
|
* Planning フェーズ用の組み込みツールを生成
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
* __register_tasks ツールは tasks 配列で複数タスクを一括登録する。
|
|
19
19
|
* 単体の instruction 指定も後方互換として受け付ける。
|
|
20
20
|
*/
|
|
21
21
|
export declare function createPlanningTools(taskList: AgenticTask[], currentIndex: number): ToolSpec[];
|
|
22
|
-
/**
|
|
23
|
-
* ワークフロー状態を更新する組み込みツール
|
|
24
|
-
*/
|
|
25
|
-
export declare function createUpdateStateTool(context: {
|
|
26
|
-
state?: string;
|
|
27
|
-
}): ToolSpec;
|
|
28
22
|
/**
|
|
29
23
|
* ビルトインツールの定義一覧(planning向け情報提供用)
|
|
30
24
|
*
|
|
31
25
|
* planningタスクが適切なタスク設計を行うには、各タスクで利用可能な
|
|
32
26
|
* ツールの全体像が必要。「できないことリスト」ではなく「ツールが
|
|
33
|
-
* 存在するから使う」形で、必要な
|
|
27
|
+
* 存在するから使う」形で、必要なactタスクを計画させる。
|
|
34
28
|
*/
|
|
35
29
|
export declare function getBuiltinToolDefinitions(): ToolDefinition[];
|
|
36
30
|
/**
|
|
37
31
|
* Execution フェーズ用の組み込みツールを生成
|
|
38
32
|
*/
|
|
39
|
-
export declare function createExecutionBuiltinTools(
|
|
33
|
+
export declare function createExecutionBuiltinTools(_taskList: AgenticTask[], _currentIndex: number): ToolSpec[];
|
|
40
34
|
//# sourceMappingURL=builtin-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../../../../src/workflows/agentic-workflow/process/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAInE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;
|
|
1
|
+
{"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../../../../src/workflows/agentic-workflow/process/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAInE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AA0FD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE,CAiC7F;AAsDD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,cAAc,EAAE,CAI5D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,WAAW,EAAE,EACxB,aAAa,EAAE,MAAM,GACpB,QAAQ,EAAE,CAKZ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agentic workflow 組み込みツール定義 (v2)
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
5
|
-
* -
|
|
4
|
+
* - __register_tasks: タスク登録(planning タスクから利用可能)
|
|
5
|
+
* - __replan: 再プランニング要求(execution タスクから利用可能)
|
|
6
6
|
* - __time: 現在時刻取得
|
|
7
7
|
*/
|
|
8
8
|
import { EXECUTION_TASK_DEFS } from '../task-types/execution-tasks.js';
|
|
@@ -16,15 +16,25 @@ export function isBuiltinTool(name) {
|
|
|
16
16
|
const TASK_ENTRY_SCHEMA = {
|
|
17
17
|
type: 'object',
|
|
18
18
|
properties: {
|
|
19
|
-
|
|
19
|
+
name: { type: 'string', description: 'Short identifier for this task (e.g. "search", "analyze"). Used in dep references and display.' },
|
|
20
|
+
instruction: { type: 'string', description: 'Description of the deliverable this task produces.' },
|
|
20
21
|
taskType: {
|
|
21
22
|
type: 'string',
|
|
22
23
|
enum: [...Object.keys(EXECUTION_TASK_DEFS), 'output'],
|
|
23
24
|
description: Object.entries(EXECUTION_TASK_DEFS)
|
|
24
25
|
.map(([name, def]) => `${name}: ${def.toolDescription}`)
|
|
25
|
-
.concat(['output:
|
|
26
|
+
.concat(['output: produces the final user-facing response (must be the last task)'])
|
|
26
27
|
.join('. ') + '. Default: think',
|
|
27
28
|
},
|
|
29
|
+
reason: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'Why this task is necessary — what gap it fills in the deliverable chain.',
|
|
32
|
+
},
|
|
33
|
+
dep: {
|
|
34
|
+
type: 'array',
|
|
35
|
+
items: { type: 'string' },
|
|
36
|
+
description: 'Names of prior tasks whose deliverables this task depends on. Omit if the task has no dependencies.',
|
|
37
|
+
},
|
|
28
38
|
driverRole: {
|
|
29
39
|
type: 'string',
|
|
30
40
|
enum: ['default', 'thinking', 'instruct', 'chat', 'plan'],
|
|
@@ -32,22 +42,22 @@ const TASK_ENTRY_SCHEMA = {
|
|
|
32
42
|
},
|
|
33
43
|
withInputs: {
|
|
34
44
|
type: 'boolean',
|
|
35
|
-
description: '
|
|
45
|
+
description: 'Pass the original user input data to this Task. Default: false for most types.',
|
|
36
46
|
},
|
|
37
47
|
withMessages: {
|
|
38
48
|
type: 'boolean',
|
|
39
|
-
description: '
|
|
49
|
+
description: 'Pass the original user messages (the conversation/request) to this Task. Default: false for most types. Set to true when the Task needs to read the raw user request.',
|
|
40
50
|
},
|
|
41
51
|
withMaterials: {
|
|
42
52
|
type: 'boolean',
|
|
43
|
-
description: '
|
|
53
|
+
description: 'Pass the original user materials to this Task. Default: false for most types.',
|
|
44
54
|
},
|
|
45
55
|
insertAt: {
|
|
46
56
|
type: 'number',
|
|
47
57
|
description: 'Position in the task list to insert at. If omitted, the task is scheduled as the next task. Values before the current task are ignored.',
|
|
48
58
|
},
|
|
49
59
|
},
|
|
50
|
-
required: ['instruction', 'taskType'],
|
|
60
|
+
required: ['name', 'instruction', 'taskType', 'reason'],
|
|
51
61
|
};
|
|
52
62
|
/**
|
|
53
63
|
* TaskEntry からタスクを登録し、結果メッセージを返す
|
|
@@ -56,6 +66,7 @@ const TASK_ENTRY_SCHEMA = {
|
|
|
56
66
|
function registerTask(taskList, entry, currentIndex) {
|
|
57
67
|
const taskType = entry.taskType || 'think';
|
|
58
68
|
const task = {
|
|
69
|
+
name: entry.name,
|
|
59
70
|
instruction: entry.instruction,
|
|
60
71
|
taskType,
|
|
61
72
|
driverRole: entry.driverRole,
|
|
@@ -71,14 +82,14 @@ function registerTask(taskList, entry, currentIndex) {
|
|
|
71
82
|
/**
|
|
72
83
|
* Planning フェーズ用の組み込みツールを生成
|
|
73
84
|
*
|
|
74
|
-
*
|
|
85
|
+
* __register_tasks ツールは tasks 配列で複数タスクを一括登録する。
|
|
75
86
|
* 単体の instruction 指定も後方互換として受け付ける。
|
|
76
87
|
*/
|
|
77
88
|
export function createPlanningTools(taskList, currentIndex) {
|
|
78
89
|
return [{
|
|
79
90
|
definition: {
|
|
80
|
-
name: '
|
|
81
|
-
description: 'Register tasks
|
|
91
|
+
name: '__register_tasks',
|
|
92
|
+
description: 'Register tasks into the existing workflow. Tasks are appended after the current position. Do not re-register tasks that already exist. Each task produces a specific deliverable and is executed by a separate AI instance.',
|
|
82
93
|
parameters: {
|
|
83
94
|
type: 'object',
|
|
84
95
|
properties: {
|
|
@@ -93,7 +104,7 @@ export function createPlanningTools(taskList, currentIndex) {
|
|
|
93
104
|
},
|
|
94
105
|
handler: async (args) => {
|
|
95
106
|
if (!Array.isArray(args.tasks) || args.tasks.length === 0) {
|
|
96
|
-
|
|
107
|
+
throw new Error('Provide a non-empty "tasks" array.');
|
|
97
108
|
}
|
|
98
109
|
let insertOffset = 0;
|
|
99
110
|
for (const entry of args.tasks) {
|
|
@@ -102,34 +113,11 @@ export function createPlanningTools(taskList, currentIndex) {
|
|
|
102
113
|
}
|
|
103
114
|
// Return full updated task list so the model can see the current plan
|
|
104
115
|
return 'Updated task list:\n' + taskList
|
|
105
|
-
.map((t, i) => `${i + 1}. (${t.taskType}): ${t.instruction}`)
|
|
116
|
+
.map((t, i) => `${i + 1}. ${t.name ? `[${t.name}] ` : ''}(${t.taskType}): ${t.instruction}`)
|
|
106
117
|
.join('\n');
|
|
107
118
|
},
|
|
108
119
|
}];
|
|
109
120
|
}
|
|
110
|
-
/**
|
|
111
|
-
* ワークフロー状態を更新する組み込みツール
|
|
112
|
-
*/
|
|
113
|
-
export function createUpdateStateTool(context) {
|
|
114
|
-
return {
|
|
115
|
-
definition: {
|
|
116
|
-
name: '__update_state',
|
|
117
|
-
description: 'Update the workflow state. The state is a free-form string that persists across tasks and is visible to all subsequent tasks in the "Current State" section.',
|
|
118
|
-
parameters: {
|
|
119
|
-
type: 'object',
|
|
120
|
-
properties: {
|
|
121
|
-
state: { type: 'string', description: 'The new state content. This replaces the current state entirely.' },
|
|
122
|
-
},
|
|
123
|
-
required: ['state'],
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
handler: async (args) => {
|
|
127
|
-
const newState = args.state;
|
|
128
|
-
context.state = newState;
|
|
129
|
-
return `State updated.`;
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
121
|
/**
|
|
134
122
|
* 現在時刻を返す組み込みツール
|
|
135
123
|
*/
|
|
@@ -154,29 +142,50 @@ const timeTool = {
|
|
|
154
142
|
};
|
|
155
143
|
},
|
|
156
144
|
};
|
|
145
|
+
/**
|
|
146
|
+
* 再プランニング要求ツール
|
|
147
|
+
* ワークフロー側で検出され、実際の再プランニングが実行される
|
|
148
|
+
*/
|
|
149
|
+
const replanTool = {
|
|
150
|
+
definition: {
|
|
151
|
+
name: '__replan',
|
|
152
|
+
description: 'Request re-planning of the workflow. Triggers a new planning phase that considers completed deliverables and remaining tasks.',
|
|
153
|
+
parameters: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
properties: {
|
|
156
|
+
reason: {
|
|
157
|
+
type: 'string',
|
|
158
|
+
description: 'Why re-planning is needed.',
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
handler: async (args) => {
|
|
164
|
+
// Return marker object. Actual re-planning is handled by the workflow.
|
|
165
|
+
return {
|
|
166
|
+
replan: true,
|
|
167
|
+
reason: args.reason,
|
|
168
|
+
};
|
|
169
|
+
},
|
|
170
|
+
};
|
|
157
171
|
/**
|
|
158
172
|
* ビルトインツールの定義一覧(planning向け情報提供用)
|
|
159
173
|
*
|
|
160
174
|
* planningタスクが適切なタスク設計を行うには、各タスクで利用可能な
|
|
161
175
|
* ツールの全体像が必要。「できないことリスト」ではなく「ツールが
|
|
162
|
-
* 存在するから使う」形で、必要な
|
|
176
|
+
* 存在するから使う」形で、必要なactタスクを計画させる。
|
|
163
177
|
*/
|
|
164
178
|
export function getBuiltinToolDefinitions() {
|
|
165
179
|
return [
|
|
166
180
|
timeTool.definition,
|
|
167
|
-
{
|
|
168
|
-
name: '__update_state',
|
|
169
|
-
description: 'Update the workflow state. The state is a free-form string that persists across tasks and is visible to all subsequent tasks.',
|
|
170
|
-
parameters: { type: 'object', properties: { state: { type: 'string' } }, required: ['state'] },
|
|
171
|
-
},
|
|
172
181
|
];
|
|
173
182
|
}
|
|
174
183
|
/**
|
|
175
184
|
* Execution フェーズ用の組み込みツールを生成
|
|
176
185
|
*/
|
|
177
|
-
export function createExecutionBuiltinTools(
|
|
186
|
+
export function createExecutionBuiltinTools(_taskList, _currentIndex) {
|
|
178
187
|
return [
|
|
179
|
-
|
|
188
|
+
replanTool,
|
|
180
189
|
timeTool,
|
|
181
190
|
];
|
|
182
191
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-tools.js","sourceRoot":"","sources":["../../../../src/workflows/agentic-workflow/process/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAC9C,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin-tools.js","sourceRoot":"","sources":["../../../../src/workflows/agentic-workflow/process/builtin-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool calling loop implementation
|
|
3
|
+
*
|
|
4
|
+
* Handles builtin tool execution with error-based retry.
|
|
5
|
+
* When a tool call fails (builtin error or invalid tool name),
|
|
6
|
+
* the error result is fed back to the model for correction.
|
|
3
7
|
*/
|
|
4
8
|
import type { ToolCall, ResolvedModule } from '@modular-prompt/core';
|
|
5
9
|
import type { ToolChoice, FinishReason, ToolDefinition } from '@modular-prompt/driver';
|
|
@@ -13,6 +17,8 @@ export interface QueryWithToolsOptions {
|
|
|
13
17
|
toolChoice?: ToolChoice;
|
|
14
18
|
/** Maximum output tokens per query */
|
|
15
19
|
maxTokens?: number;
|
|
20
|
+
/** Maximum retries on tool errors (default: 2) */
|
|
21
|
+
maxRetries?: number;
|
|
16
22
|
logger?: Logger;
|
|
17
23
|
}
|
|
18
24
|
export interface QueryWithToolsResult {
|
|
@@ -24,12 +30,14 @@ export interface QueryWithToolsResult {
|
|
|
24
30
|
finishReason?: FinishReason;
|
|
25
31
|
}
|
|
26
32
|
/**
|
|
27
|
-
*
|
|
33
|
+
* Query the model and handle tool calls with error retry.
|
|
34
|
+
*
|
|
35
|
+
* Builtin tools (__ prefix) are executed internally.
|
|
36
|
+
* External tool calls are returned as pending for the caller.
|
|
28
37
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* Tool results are passed to subsequent tasks via preparationNote.
|
|
38
|
+
* On tool errors (builtin execution failure or invalid tool name),
|
|
39
|
+
* the error is fed back to the model and the query is retried
|
|
40
|
+
* up to maxRetries times.
|
|
33
41
|
*/
|
|
34
42
|
export declare function queryWithTools(driver: AIDriver, resolved: ResolvedModule, builtinTools: ToolSpec[], options?: QueryWithToolsOptions): Promise<QueryWithToolsResult>;
|
|
35
43
|
export declare function rethrowAsWorkflowError(error: unknown, context: unknown, details: Record<string, unknown>): never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-with-tools.d.ts","sourceRoot":"","sources":["../../../../src/workflows/agentic-workflow/process/query-with-tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"query-with-tools.d.ts","sourceRoot":"","sources":["../../../../src/workflows/agentic-workflow/process/query-with-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAoD,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEvH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAwCzD,MAAM,WAAW,qBAAqB;IACpC,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,QAAQ,EAAE,EACxB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CA0G/B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,KAAK,CAGP"}
|