@nahisaho/katashiro-orchestrator 1.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/agent/AgentStateManager.d.ts +133 -0
- package/dist/agent/AgentStateManager.d.ts.map +1 -0
- package/dist/agent/AgentStateManager.js +243 -0
- package/dist/agent/AgentStateManager.js.map +1 -0
- package/dist/agent/ReActHelper.d.ts +139 -0
- package/dist/agent/ReActHelper.d.ts.map +1 -0
- package/dist/agent/ReActHelper.js +342 -0
- package/dist/agent/ReActHelper.js.map +1 -0
- package/dist/agent/index.d.ts +9 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +20 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/types.d.ts +108 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +9 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/cascading/CascadingAgent.d.ts +156 -0
- package/dist/cascading/CascadingAgent.d.ts.map +1 -0
- package/dist/cascading/CascadingAgent.js +368 -0
- package/dist/cascading/CascadingAgent.js.map +1 -0
- package/dist/cascading/CascadingResearchEngine.d.ts +87 -0
- package/dist/cascading/CascadingResearchEngine.d.ts.map +1 -0
- package/dist/cascading/CascadingResearchEngine.js +329 -0
- package/dist/cascading/CascadingResearchEngine.js.map +1 -0
- package/dist/cascading/StepExecutor.d.ts +94 -0
- package/dist/cascading/StepExecutor.d.ts.map +1 -0
- package/dist/cascading/StepExecutor.js +315 -0
- package/dist/cascading/StepExecutor.js.map +1 -0
- package/dist/cascading/StepResultIntegrator.d.ts +101 -0
- package/dist/cascading/StepResultIntegrator.d.ts.map +1 -0
- package/dist/cascading/StepResultIntegrator.js +343 -0
- package/dist/cascading/StepResultIntegrator.js.map +1 -0
- package/dist/cascading/index.d.ts +16 -0
- package/dist/cascading/index.d.ts.map +1 -0
- package/dist/cascading/index.js +33 -0
- package/dist/cascading/index.js.map +1 -0
- package/dist/cascading/types.d.ts +369 -0
- package/dist/cascading/types.d.ts.map +1 -0
- package/dist/cascading/types.js +172 -0
- package/dist/cascading/types.js.map +1 -0
- package/dist/consensus/AsciiDiagramConverter.d.ts +45 -0
- package/dist/consensus/AsciiDiagramConverter.d.ts.map +1 -0
- package/dist/consensus/AsciiDiagramConverter.js +460 -0
- package/dist/consensus/AsciiDiagramConverter.js.map +1 -0
- package/dist/consensus/ConsensusResearchEngine.d.ts +4 -3
- package/dist/consensus/ConsensusResearchEngine.d.ts.map +1 -1
- package/dist/consensus/ConsensusResearchEngine.js +17 -5
- package/dist/consensus/ConsensusResearchEngine.js.map +1 -1
- package/dist/consensus/ReportPostProcessor.d.ts +51 -0
- package/dist/consensus/ReportPostProcessor.d.ts.map +1 -0
- package/dist/consensus/ReportPostProcessor.js +162 -0
- package/dist/consensus/ReportPostProcessor.js.map +1 -0
- package/dist/consensus/index.d.ts +5 -2
- package/dist/consensus/index.d.ts.map +1 -1
- package/dist/consensus/index.js +8 -1
- package/dist/consensus/index.js.map +1 -1
- package/dist/consensus/types.d.ts +68 -2
- package/dist/consensus/types.d.ts.map +1 -1
- package/dist/consensus/types.js +13 -3
- package/dist/consensus/types.js.map +1 -1
- package/dist/dialogue/index.d.ts +2 -0
- package/dist/dialogue/index.d.ts.map +1 -1
- package/dist/dialogue/index.js +5 -1
- package/dist/dialogue/index.js.map +1 -1
- package/dist/dialogue/llm-dialogue-collector.d.ts +169 -0
- package/dist/dialogue/llm-dialogue-collector.d.ts.map +1 -0
- package/dist/dialogue/llm-dialogue-collector.js +449 -0
- package/dist/dialogue/llm-dialogue-collector.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -2
- package/dist/index.js.map +1 -1
- package/dist/tool-registry.d.ts +13 -1
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tool-registry.js +18 -0
- package/dist/tool-registry.js.map +1 -1
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/standard-tools.d.ts +121 -0
- package/dist/tools/standard-tools.d.ts.map +1 -0
- package/dist/tools/standard-tools.js +348 -0
- package/dist/tools/standard-tools.js.map +1 -0
- package/package.json +14 -14
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 nahisaho
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentStateManager - エージェント状態管理
|
|
3
|
+
*
|
|
4
|
+
* @requirement REQ-AGENT-002
|
|
5
|
+
* @description エージェントの状態を管理するクラス
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentState, AgentAction, AddActionInput, CreateAgentStateOptions, AgentStateManagerConfig, AgentStateStatus } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* エージェント状態マネージャー
|
|
10
|
+
*
|
|
11
|
+
* エージェントの状態(会話履歴、コンテキスト、中間結果)を管理します。
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const manager = new AgentStateManager();
|
|
16
|
+
*
|
|
17
|
+
* // 状態を作成
|
|
18
|
+
* const state = manager.create({ maxSteps: 10 });
|
|
19
|
+
*
|
|
20
|
+
* // アクションを追加
|
|
21
|
+
* const updatedState = manager.addAction(state, {
|
|
22
|
+
* type: 'thought',
|
|
23
|
+
* content: { thought: 'ユーザーの質問を分析中...' }
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* // ツール呼び出しを追加
|
|
27
|
+
* const withToolCall = manager.addAction(updatedState, {
|
|
28
|
+
* type: 'tool_call',
|
|
29
|
+
* content: { tool: 'web_search', params: { query: 'AI news' } }
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* // シリアライズ
|
|
33
|
+
* const json = manager.serialize(withToolCall);
|
|
34
|
+
*
|
|
35
|
+
* // デシリアライズ
|
|
36
|
+
* const restored = manager.deserialize(json);
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare class AgentStateManager {
|
|
40
|
+
private config;
|
|
41
|
+
constructor(config?: AgentStateManagerConfig);
|
|
42
|
+
/**
|
|
43
|
+
* 新しいエージェント状態を作成
|
|
44
|
+
*/
|
|
45
|
+
create(options?: CreateAgentStateOptions): AgentState;
|
|
46
|
+
/**
|
|
47
|
+
* アクションを追加
|
|
48
|
+
*
|
|
49
|
+
* @returns 新しい状態(イミュータブル)
|
|
50
|
+
*/
|
|
51
|
+
addAction(state: AgentState, action: AddActionInput): AgentState;
|
|
52
|
+
/**
|
|
53
|
+
* 中間結果を追加
|
|
54
|
+
*/
|
|
55
|
+
addIntermediateResult(state: AgentState, result: unknown): AgentState;
|
|
56
|
+
/**
|
|
57
|
+
* コンテキストを更新
|
|
58
|
+
*/
|
|
59
|
+
updateContext(state: AgentState, updates: Record<string, unknown>): AgentState;
|
|
60
|
+
/**
|
|
61
|
+
* ステータスを更新
|
|
62
|
+
*/
|
|
63
|
+
updateStatus(state: AgentState, status: AgentStateStatus): AgentState;
|
|
64
|
+
/**
|
|
65
|
+
* 状態をリセット(履歴をクリア)
|
|
66
|
+
*/
|
|
67
|
+
reset(state: AgentState): AgentState;
|
|
68
|
+
/**
|
|
69
|
+
* 状態をシリアライズ(JSON文字列に変換)
|
|
70
|
+
*/
|
|
71
|
+
serialize(state: AgentState): string;
|
|
72
|
+
/**
|
|
73
|
+
* JSON文字列から状態をデシリアライズ
|
|
74
|
+
*/
|
|
75
|
+
deserialize(json: string): AgentState;
|
|
76
|
+
/**
|
|
77
|
+
* 最大ステップに達したかどうか
|
|
78
|
+
*/
|
|
79
|
+
isMaxStepsReached(state: AgentState): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* 完了したかどうか
|
|
82
|
+
*/
|
|
83
|
+
isCompleted(state: AgentState): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* 実行中かどうか
|
|
86
|
+
*/
|
|
87
|
+
isRunning(state: AgentState): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* 最後のアクションを取得
|
|
90
|
+
*/
|
|
91
|
+
getLastAction(state: AgentState): AgentAction | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* 特定タイプのアクションを取得
|
|
94
|
+
*/
|
|
95
|
+
getActionsByType(state: AgentState, type: AgentAction['type']): AgentAction[];
|
|
96
|
+
/**
|
|
97
|
+
* ツール呼び出し履歴を取得
|
|
98
|
+
*/
|
|
99
|
+
getToolCalls(state: AgentState): AgentAction[];
|
|
100
|
+
/**
|
|
101
|
+
* 思考履歴を取得
|
|
102
|
+
*/
|
|
103
|
+
getThoughts(state: AgentState): AgentAction[];
|
|
104
|
+
/**
|
|
105
|
+
* 状態のサマリーを取得
|
|
106
|
+
*/
|
|
107
|
+
getSummary(state: AgentState): AgentStateSummary;
|
|
108
|
+
/**
|
|
109
|
+
* 状態からステータスを判定
|
|
110
|
+
*/
|
|
111
|
+
private determineStatus;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* 状態サマリー
|
|
115
|
+
*/
|
|
116
|
+
export interface AgentStateSummary {
|
|
117
|
+
conversationId: string;
|
|
118
|
+
status: AgentStateStatus;
|
|
119
|
+
currentStep: number;
|
|
120
|
+
maxSteps: number;
|
|
121
|
+
totalActions: number;
|
|
122
|
+
toolCallCount: number;
|
|
123
|
+
thoughtCount: number;
|
|
124
|
+
observationCount: number;
|
|
125
|
+
hasIntermediateResults: boolean;
|
|
126
|
+
createdAt: string;
|
|
127
|
+
updatedAt: string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* デフォルトのAgentStateManagerインスタンス
|
|
131
|
+
*/
|
|
132
|
+
export declare const defaultAgentStateManager: AgentStateManager;
|
|
133
|
+
//# sourceMappingURL=AgentStateManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentStateManager.d.ts","sourceRoot":"","sources":["../../src/agent/AgentStateManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,uBAAuB,EAEvB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAoC;gBAEtC,MAAM,GAAE,uBAA4B;IAIhD;;OAEG;IACH,MAAM,CAAC,OAAO,GAAE,uBAA4B,GAAG,UAAU;IAgBzD;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU;IAmBhE;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU;IAQrE;;OAEG;IACH,aAAa,CACX,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,UAAU;IAQb;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,GAAG,UAAU;IAQrE;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAapC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAQpC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAiBrC;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAI7C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIvC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIrC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS;IAIzD;;OAEG;IACH,gBAAgB,CACd,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GACxB,WAAW,EAAE;IAIhB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,EAAE;IAI9C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,EAAE;IAI7C;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,iBAAiB;IAoBhD;;OAEG;IACH,OAAO,CAAC,eAAe;CAiBxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AgentStateManager - エージェント状態管理
|
|
4
|
+
*
|
|
5
|
+
* @requirement REQ-AGENT-002
|
|
6
|
+
* @description エージェントの状態を管理するクラス
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.defaultAgentStateManager = exports.AgentStateManager = void 0;
|
|
10
|
+
/** シリアライズバージョン */
|
|
11
|
+
const SERIALIZATION_VERSION = '1.0.0';
|
|
12
|
+
/** デフォルト設定 */
|
|
13
|
+
const DEFAULT_CONFIG = {
|
|
14
|
+
defaultMaxSteps: 10,
|
|
15
|
+
idGenerator: () => `agent-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`,
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* エージェント状態マネージャー
|
|
19
|
+
*
|
|
20
|
+
* エージェントの状態(会話履歴、コンテキスト、中間結果)を管理します。
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const manager = new AgentStateManager();
|
|
25
|
+
*
|
|
26
|
+
* // 状態を作成
|
|
27
|
+
* const state = manager.create({ maxSteps: 10 });
|
|
28
|
+
*
|
|
29
|
+
* // アクションを追加
|
|
30
|
+
* const updatedState = manager.addAction(state, {
|
|
31
|
+
* type: 'thought',
|
|
32
|
+
* content: { thought: 'ユーザーの質問を分析中...' }
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* // ツール呼び出しを追加
|
|
36
|
+
* const withToolCall = manager.addAction(updatedState, {
|
|
37
|
+
* type: 'tool_call',
|
|
38
|
+
* content: { tool: 'web_search', params: { query: 'AI news' } }
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* // シリアライズ
|
|
42
|
+
* const json = manager.serialize(withToolCall);
|
|
43
|
+
*
|
|
44
|
+
* // デシリアライズ
|
|
45
|
+
* const restored = manager.deserialize(json);
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
class AgentStateManager {
|
|
49
|
+
config;
|
|
50
|
+
constructor(config = {}) {
|
|
51
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 新しいエージェント状態を作成
|
|
55
|
+
*/
|
|
56
|
+
create(options = {}) {
|
|
57
|
+
const now = new Date().toISOString();
|
|
58
|
+
return {
|
|
59
|
+
conversationId: options.conversationId ?? this.config.idGenerator(),
|
|
60
|
+
currentStep: 0,
|
|
61
|
+
maxSteps: options.maxSteps ?? this.config.defaultMaxSteps,
|
|
62
|
+
history: [],
|
|
63
|
+
context: options.context ?? {},
|
|
64
|
+
intermediateResults: [],
|
|
65
|
+
createdAt: now,
|
|
66
|
+
updatedAt: now,
|
|
67
|
+
status: 'idle',
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* アクションを追加
|
|
72
|
+
*
|
|
73
|
+
* @returns 新しい状態(イミュータブル)
|
|
74
|
+
*/
|
|
75
|
+
addAction(state, action) {
|
|
76
|
+
const now = new Date().toISOString();
|
|
77
|
+
const newStep = state.currentStep + 1;
|
|
78
|
+
const newAction = {
|
|
79
|
+
...action,
|
|
80
|
+
step: newStep,
|
|
81
|
+
timestamp: now,
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
...state,
|
|
85
|
+
currentStep: newStep,
|
|
86
|
+
history: [...state.history, newAction],
|
|
87
|
+
updatedAt: now,
|
|
88
|
+
status: this.determineStatus(state, newAction),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 中間結果を追加
|
|
93
|
+
*/
|
|
94
|
+
addIntermediateResult(state, result) {
|
|
95
|
+
return {
|
|
96
|
+
...state,
|
|
97
|
+
intermediateResults: [...state.intermediateResults, result],
|
|
98
|
+
updatedAt: new Date().toISOString(),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* コンテキストを更新
|
|
103
|
+
*/
|
|
104
|
+
updateContext(state, updates) {
|
|
105
|
+
return {
|
|
106
|
+
...state,
|
|
107
|
+
context: { ...state.context, ...updates },
|
|
108
|
+
updatedAt: new Date().toISOString(),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* ステータスを更新
|
|
113
|
+
*/
|
|
114
|
+
updateStatus(state, status) {
|
|
115
|
+
return {
|
|
116
|
+
...state,
|
|
117
|
+
status,
|
|
118
|
+
updatedAt: new Date().toISOString(),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* 状態をリセット(履歴をクリア)
|
|
123
|
+
*/
|
|
124
|
+
reset(state) {
|
|
125
|
+
const now = new Date().toISOString();
|
|
126
|
+
return {
|
|
127
|
+
...state,
|
|
128
|
+
currentStep: 0,
|
|
129
|
+
history: [],
|
|
130
|
+
intermediateResults: [],
|
|
131
|
+
updatedAt: now,
|
|
132
|
+
status: 'idle',
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 状態をシリアライズ(JSON文字列に変換)
|
|
137
|
+
*/
|
|
138
|
+
serialize(state) {
|
|
139
|
+
const serialized = {
|
|
140
|
+
version: SERIALIZATION_VERSION,
|
|
141
|
+
data: state,
|
|
142
|
+
};
|
|
143
|
+
return JSON.stringify(serialized, null, 2);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* JSON文字列から状態をデシリアライズ
|
|
147
|
+
*/
|
|
148
|
+
deserialize(json) {
|
|
149
|
+
const parsed = JSON.parse(json);
|
|
150
|
+
if (!parsed.version || !parsed.data) {
|
|
151
|
+
throw new Error('Invalid serialized agent state format');
|
|
152
|
+
}
|
|
153
|
+
// バージョンチェック(将来的なマイグレーション用)
|
|
154
|
+
if (parsed.version !== SERIALIZATION_VERSION) {
|
|
155
|
+
console.warn(`Agent state version mismatch: expected ${SERIALIZATION_VERSION}, got ${parsed.version}`);
|
|
156
|
+
}
|
|
157
|
+
return parsed.data;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* 最大ステップに達したかどうか
|
|
161
|
+
*/
|
|
162
|
+
isMaxStepsReached(state) {
|
|
163
|
+
return state.currentStep >= state.maxSteps;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* 完了したかどうか
|
|
167
|
+
*/
|
|
168
|
+
isCompleted(state) {
|
|
169
|
+
return state.status === 'completed';
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* 実行中かどうか
|
|
173
|
+
*/
|
|
174
|
+
isRunning(state) {
|
|
175
|
+
return state.status === 'running';
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* 最後のアクションを取得
|
|
179
|
+
*/
|
|
180
|
+
getLastAction(state) {
|
|
181
|
+
return state.history.at(-1);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* 特定タイプのアクションを取得
|
|
185
|
+
*/
|
|
186
|
+
getActionsByType(state, type) {
|
|
187
|
+
return state.history.filter((action) => action.type === type);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* ツール呼び出し履歴を取得
|
|
191
|
+
*/
|
|
192
|
+
getToolCalls(state) {
|
|
193
|
+
return this.getActionsByType(state, 'tool_call');
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* 思考履歴を取得
|
|
197
|
+
*/
|
|
198
|
+
getThoughts(state) {
|
|
199
|
+
return this.getActionsByType(state, 'thought');
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* 状態のサマリーを取得
|
|
203
|
+
*/
|
|
204
|
+
getSummary(state) {
|
|
205
|
+
const toolCalls = this.getToolCalls(state);
|
|
206
|
+
const observations = this.getActionsByType(state, 'observation');
|
|
207
|
+
const thoughts = this.getThoughts(state);
|
|
208
|
+
return {
|
|
209
|
+
conversationId: state.conversationId,
|
|
210
|
+
status: state.status,
|
|
211
|
+
currentStep: state.currentStep,
|
|
212
|
+
maxSteps: state.maxSteps,
|
|
213
|
+
totalActions: state.history.length,
|
|
214
|
+
toolCallCount: toolCalls.length,
|
|
215
|
+
thoughtCount: thoughts.length,
|
|
216
|
+
observationCount: observations.length,
|
|
217
|
+
hasIntermediateResults: state.intermediateResults.length > 0,
|
|
218
|
+
createdAt: state.createdAt,
|
|
219
|
+
updatedAt: state.updatedAt,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* 状態からステータスを判定
|
|
224
|
+
*/
|
|
225
|
+
determineStatus(state, newAction) {
|
|
226
|
+
// 最終回答があれば完了
|
|
227
|
+
if (newAction.type === 'final_answer') {
|
|
228
|
+
return 'completed';
|
|
229
|
+
}
|
|
230
|
+
// 最大ステップに達したら失敗
|
|
231
|
+
if (state.currentStep + 1 >= state.maxSteps) {
|
|
232
|
+
return 'failed';
|
|
233
|
+
}
|
|
234
|
+
// それ以外は実行中
|
|
235
|
+
return 'running';
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
exports.AgentStateManager = AgentStateManager;
|
|
239
|
+
/**
|
|
240
|
+
* デフォルトのAgentStateManagerインスタンス
|
|
241
|
+
*/
|
|
242
|
+
exports.defaultAgentStateManager = new AgentStateManager();
|
|
243
|
+
//# sourceMappingURL=AgentStateManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentStateManager.js","sourceRoot":"","sources":["../../src/agent/AgentStateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReAct Helper
|
|
3
|
+
*
|
|
4
|
+
* ReAct(Reasoning + Acting)パターンの出力をパースするヘルパー
|
|
5
|
+
*
|
|
6
|
+
* @requirement REQ-AGENT-004
|
|
7
|
+
*/
|
|
8
|
+
import type { AgentAction } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* ReAct出力のパース結果
|
|
11
|
+
*/
|
|
12
|
+
export interface ReActParseResult {
|
|
13
|
+
/** パース成功したか */
|
|
14
|
+
success: boolean;
|
|
15
|
+
/** 抽出されたアクション */
|
|
16
|
+
actions: ReActStep[];
|
|
17
|
+
/** 最終回答(存在する場合) */
|
|
18
|
+
finalAnswer?: string;
|
|
19
|
+
/** パースエラー */
|
|
20
|
+
errors: string[];
|
|
21
|
+
/** 生のテキスト */
|
|
22
|
+
rawText: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* ReActステップ
|
|
26
|
+
*/
|
|
27
|
+
export interface ReActStep {
|
|
28
|
+
/** ステップ番号 */
|
|
29
|
+
step: number;
|
|
30
|
+
/** 思考(Thought) */
|
|
31
|
+
thought?: string;
|
|
32
|
+
/** アクション(Action) */
|
|
33
|
+
action?: {
|
|
34
|
+
tool: string;
|
|
35
|
+
input: string | Record<string, unknown>;
|
|
36
|
+
};
|
|
37
|
+
/** 観察(Observation) */
|
|
38
|
+
observation?: string;
|
|
39
|
+
/** 最終回答 */
|
|
40
|
+
finalAnswer?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* ReActフォーマット設定
|
|
44
|
+
*/
|
|
45
|
+
export interface ReActFormatConfig {
|
|
46
|
+
/** 思考のプレフィックス */
|
|
47
|
+
thoughtPrefix?: string;
|
|
48
|
+
/** アクションのプレフィックス */
|
|
49
|
+
actionPrefix?: string;
|
|
50
|
+
/** アクション入力のプレフィックス */
|
|
51
|
+
actionInputPrefix?: string;
|
|
52
|
+
/** 観察のプレフィックス */
|
|
53
|
+
observationPrefix?: string;
|
|
54
|
+
/** 最終回答のプレフィックス */
|
|
55
|
+
finalAnswerPrefix?: string;
|
|
56
|
+
/** 大文字小文字を区別しない */
|
|
57
|
+
caseInsensitive?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* デフォルトのReActフォーマット
|
|
61
|
+
*/
|
|
62
|
+
export declare const DEFAULT_REACT_FORMAT: Required<ReActFormatConfig>;
|
|
63
|
+
/**
|
|
64
|
+
* ReActプロンプトテンプレート
|
|
65
|
+
*/
|
|
66
|
+
export declare const REACT_SYSTEM_PROMPT = "You are an AI assistant that uses the ReAct (Reasoning and Acting) pattern.\n\nFor each step, you should:\n1. **Thought**: Think about what you need to do next\n2. **Action**: Choose a tool to use\n3. **Action Input**: Provide the input for the tool\n4. **Observation**: (This will be filled in with the tool's output)\n\nContinue this process until you can provide a final answer.\n\nWhen you have enough information to answer the question, respond with:\nFinal Answer: [your answer]\n\nFormat your response as:\nThought: [your reasoning]\nAction: [tool name]\nAction Input: [tool input]\n\nAvailable tools:\n{tools}\n";
|
|
67
|
+
/**
|
|
68
|
+
* ReActヘルパー
|
|
69
|
+
*/
|
|
70
|
+
export declare class ReActHelper {
|
|
71
|
+
private config;
|
|
72
|
+
constructor(config?: ReActFormatConfig);
|
|
73
|
+
/**
|
|
74
|
+
* ReAct形式のテキストをパース
|
|
75
|
+
*/
|
|
76
|
+
parse(text: string): ReActParseResult;
|
|
77
|
+
/**
|
|
78
|
+
* ReActステップをAgentActionに変換
|
|
79
|
+
*/
|
|
80
|
+
toAgentActions(steps: ReActStep[]): AgentAction[];
|
|
81
|
+
/**
|
|
82
|
+
* AgentActionからReAct形式のテキストを生成
|
|
83
|
+
*/
|
|
84
|
+
format(actions: AgentAction[]): string;
|
|
85
|
+
/**
|
|
86
|
+
* ツール呼び出しを抽出(次のアクションを取得)
|
|
87
|
+
*/
|
|
88
|
+
extractNextAction(text: string): {
|
|
89
|
+
tool: string;
|
|
90
|
+
input: string | Record<string, unknown>;
|
|
91
|
+
} | null;
|
|
92
|
+
/**
|
|
93
|
+
* 最終回答かどうかを判定
|
|
94
|
+
*/
|
|
95
|
+
isFinalAnswer(text: string): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* 最終回答を抽出
|
|
98
|
+
*/
|
|
99
|
+
extractFinalAnswer(text: string): string | null;
|
|
100
|
+
/**
|
|
101
|
+
* プロンプトにObservationを追加
|
|
102
|
+
*/
|
|
103
|
+
appendObservation(prompt: string, observation: string): string;
|
|
104
|
+
/**
|
|
105
|
+
* システムプロンプトを生成
|
|
106
|
+
*/
|
|
107
|
+
generateSystemPrompt(tools: Array<{
|
|
108
|
+
name: string;
|
|
109
|
+
description: string;
|
|
110
|
+
}>): string;
|
|
111
|
+
/**
|
|
112
|
+
* プレフィックスマッチ
|
|
113
|
+
*/
|
|
114
|
+
private matchesPrefix;
|
|
115
|
+
/**
|
|
116
|
+
* プレフィックス後の値を抽出
|
|
117
|
+
*/
|
|
118
|
+
private extractValue;
|
|
119
|
+
/**
|
|
120
|
+
* アクション入力をパース
|
|
121
|
+
*/
|
|
122
|
+
private parseActionInput;
|
|
123
|
+
/**
|
|
124
|
+
* 設定を取得
|
|
125
|
+
*/
|
|
126
|
+
getConfig(): Required<ReActFormatConfig>;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* シンプルなパースヘルパー
|
|
130
|
+
*/
|
|
131
|
+
export declare function parseReActOutput(text: string): ReActParseResult;
|
|
132
|
+
/**
|
|
133
|
+
* シンプルな次アクション抽出ヘルパー
|
|
134
|
+
*/
|
|
135
|
+
export declare function extractNextReActAction(text: string): {
|
|
136
|
+
tool: string;
|
|
137
|
+
input: string | Record<string, unknown>;
|
|
138
|
+
} | null;
|
|
139
|
+
//# sourceMappingURL=ReActHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReActHelper.d.ts","sourceRoot":"","sources":["../../src/agent/ReActHelper.ts"],"names":[],"mappings":"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"}
|