@nahisaho/katashiro-analyzer 2.0.13 → 2.1.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/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/research/agent/ActionRouter.d.ts +101 -0
- package/dist/research/agent/ActionRouter.d.ts.map +1 -0
- package/dist/research/agent/ActionRouter.js +284 -0
- package/dist/research/agent/ActionRouter.js.map +1 -0
- package/dist/research/agent/ActionTracker.d.ts +105 -0
- package/dist/research/agent/ActionTracker.d.ts.map +1 -0
- package/dist/research/agent/ActionTracker.js +219 -0
- package/dist/research/agent/ActionTracker.js.map +1 -0
- package/dist/research/agent/AnswerEvaluator.d.ts +156 -0
- package/dist/research/agent/AnswerEvaluator.d.ts.map +1 -0
- package/dist/research/agent/AnswerEvaluator.js +626 -0
- package/dist/research/agent/AnswerEvaluator.js.map +1 -0
- package/dist/research/agent/DeepResearchAgent.d.ts +136 -0
- package/dist/research/agent/DeepResearchAgent.d.ts.map +1 -0
- package/dist/research/agent/DeepResearchAgent.js +381 -0
- package/dist/research/agent/DeepResearchAgent.js.map +1 -0
- package/dist/research/agent/KnowledgeStore.d.ts +95 -0
- package/dist/research/agent/KnowledgeStore.d.ts.map +1 -0
- package/dist/research/agent/KnowledgeStore.js +189 -0
- package/dist/research/agent/KnowledgeStore.js.map +1 -0
- package/dist/research/agent/QueryRewriter.d.ts +111 -0
- package/dist/research/agent/QueryRewriter.d.ts.map +1 -0
- package/dist/research/agent/QueryRewriter.js +350 -0
- package/dist/research/agent/QueryRewriter.js.map +1 -0
- package/dist/research/agent/TokenTracker.d.ts +100 -0
- package/dist/research/agent/TokenTracker.d.ts.map +1 -0
- package/dist/research/agent/TokenTracker.js +150 -0
- package/dist/research/agent/TokenTracker.js.map +1 -0
- package/dist/research/agent/actions/AnswerActionHandler.d.ts +44 -0
- package/dist/research/agent/actions/AnswerActionHandler.d.ts.map +1 -0
- package/dist/research/agent/actions/AnswerActionHandler.js +158 -0
- package/dist/research/agent/actions/AnswerActionHandler.js.map +1 -0
- package/dist/research/agent/actions/BaseActionHandler.d.ts +87 -0
- package/dist/research/agent/actions/BaseActionHandler.d.ts.map +1 -0
- package/dist/research/agent/actions/BaseActionHandler.js +67 -0
- package/dist/research/agent/actions/BaseActionHandler.js.map +1 -0
- package/dist/research/agent/actions/CodingActionHandler.d.ts +66 -0
- package/dist/research/agent/actions/CodingActionHandler.d.ts.map +1 -0
- package/dist/research/agent/actions/CodingActionHandler.js +233 -0
- package/dist/research/agent/actions/CodingActionHandler.js.map +1 -0
- package/dist/research/agent/actions/ReflectActionHandler.d.ts +32 -0
- package/dist/research/agent/actions/ReflectActionHandler.d.ts.map +1 -0
- package/dist/research/agent/actions/ReflectActionHandler.js +107 -0
- package/dist/research/agent/actions/ReflectActionHandler.js.map +1 -0
- package/dist/research/agent/actions/SearchActionHandler.d.ts +30 -0
- package/dist/research/agent/actions/SearchActionHandler.d.ts.map +1 -0
- package/dist/research/agent/actions/SearchActionHandler.js +73 -0
- package/dist/research/agent/actions/SearchActionHandler.js.map +1 -0
- package/dist/research/agent/actions/VisitActionHandler.d.ts +33 -0
- package/dist/research/agent/actions/VisitActionHandler.d.ts.map +1 -0
- package/dist/research/agent/actions/VisitActionHandler.js +83 -0
- package/dist/research/agent/actions/VisitActionHandler.js.map +1 -0
- package/dist/research/agent/actions/index.d.ts +10 -0
- package/dist/research/agent/actions/index.d.ts.map +1 -0
- package/dist/research/agent/actions/index.js +10 -0
- package/dist/research/agent/actions/index.js.map +1 -0
- package/dist/research/agent/index.d.ts +62 -0
- package/dist/research/agent/index.d.ts.map +1 -0
- package/dist/research/agent/index.js +57 -0
- package/dist/research/agent/index.js.map +1 -0
- package/dist/research/agent/types.d.ts +421 -0
- package/dist/research/agent/types.d.ts.map +1 -0
- package/dist/research/agent/types.js +45 -0
- package/dist/research/agent/types.js.map +1 -0
- package/dist/research/index.d.ts +1 -0
- package/dist/research/index.d.ts.map +1 -1
- package/dist/research/index.js +2 -0
- package/dist/research/index.js.map +1 -1
- package/package.json +9 -8
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.
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,9 @@ export { MultiSourceComparator, type SourceForComparison, type ExtractedClaim, t
|
|
|
19
19
|
export { DeepResearchOrchestrator, GapAnalyzer, ConvergenceDetector, QueryGenerator, FindingIntegrator, type DeepResearchQuery, type DeepResearchResult, type ResearchProgress, type ResearchPhase, type SimpleKnowledgeGraph, type KeyFinding, type ImportanceLevel, type SourceReference, type IterationRecord, type KnowledgeGap, type GapType, type GapPriority, type UserGuidance, type IntegrationResult, type DeepResearchStatistics, type CompletionReason, } from './research/index.js';
|
|
20
20
|
export { TrendAnalyzer, TimeSeriesCollector, TrendDetector, ForecastEngine, VisualizationGenerator, DEFAULT_TREND_CONFIG, type TrendAnalysisQuery, type TrendAnalysisResult, type TrendAnalyzerConfig, type TrendAnalysisError, type TimeSeriesData, type CollectionQuery, type SampleDocument, type DetectedTrend, type TrendType, type TrendDetectorConfig, type TrendSummary, type ForecastData, type ForecastConfig, type ForecastMethod, type VisualizationData, type LineChartData, type HeatmapData, type PieChartData, type TopicComparison, type TrendMetadata, type TrendSource, type TimeGranularity, } from './trend/index.js';
|
|
21
21
|
export { FactChecker, ClaimParser, TrustedSourceRegistry, EvidenceCollector, ConsistencyChecker, VerdictGenerator, DEFAULT_FACTCHECKER_CONFIG, type FactCheckError, type FactCheckErrorCode, type SearchClient, type Scraper, type SearchResultItem, type ScrapedPage, type EvidenceCollectorConfig, type ConsistencyResult, type VerificationSourceType, type VerdictLabel, type EvidenceRelation, type StrictnessLevel, type FactCheckRequest, type Verdict, type Evidence, type VerificationDetails, type Reference, type ExistingFactCheck, type FactCheckMetadata, type FactCheckResultDetail, type QuickCheckResult, type ExtractedClaim as FactCheckExtractedClaim, type ClaimType, type ClaimVerification, type TrustedSourceConfig, type VerdictInput, type FactCheckerConfig, } from './factcheck/index.js';
|
|
22
|
-
export { MoAEngine, TaskAnalyzer, AgentOrchestrator, ResponseAggregator, ConsensusCalculator, AGENT_PRESETS, DEFAULT_MOA_CONFIG, type MoARequest, type MoAResult, type MoAConfig, type AgentConfig, type AgentType, type AgentParameters, type AgentResponse, type PeerScore, type TokenUsage, type AggregationStrategy, type AggregationDetails, type AgentContribution, type RoundResult, type MoAMetadata, type MoAEngineOptions, type LLMProvider, type TaskAnalysis, type AggregationResult, type ConsensusAnalysis, type ConsensusLevel, } from './moa/index.js';
|
|
22
|
+
export { MoAEngine, TaskAnalyzer, AgentOrchestrator, ResponseAggregator, ConsensusCalculator, AGENT_PRESETS, DEFAULT_MOA_CONFIG, type MoARequest, type MoAResult, type MoAConfig, type AgentConfig as MoAAgentConfig, type AgentType, type AgentParameters, type AgentResponse, type PeerScore, type TokenUsage as MoATokenUsage, type AggregationStrategy, type AggregationDetails, type AgentContribution, type RoundResult, type MoAMetadata, type MoAEngineOptions, type LLMProvider, type TaskAnalysis, type AggregationResult, type ConsensusAnalysis, type ConsensusLevel, } from './moa/index.js';
|
|
23
23
|
export { CodeInterpreter, CodeValidator, SandboxManager, ExecutionEngine, ResultFormatter, SessionManager, DEFAULT_EXECUTION_CONFIG, BLOCKED_PYTHON_MODULES, ALLOWED_PYTHON_MODULES, INTERPRETER_ERROR_CODES, CodeInterpreterError, type SupportedLanguage, type ExecutionMode, type ErrorType, type SessionState, type InputFile, type OutputFile, type GeneratedImage, type ExecutionLog, type ExecutionError, type SecurityConstraints, type ExecutionMetadata, type ExecutionRequest, type ExecutionResult, type CodeAnalysis, type ValidationResult, type SessionHistoryEntry, type ExecutionSession, type SandboxConfig, type SandboxExecutionResult, type SandboxInstance, type ExecutionOptions, type FormatOptions, } from './interpreter/index.js';
|
|
24
24
|
export { DocumentConsistencyChecker, NumericExtractor, DateExtractor, TermExtractor, ReferenceExtractor, NumericValidator, DateValidator, TermValidator, ReferenceValidator, ConsistencyReporter, DocumentLoader, type CheckerConfig, type Document as ConsistencyDocument, type Location, type Severity, type IssueSeverity, type NumericFormat, type DateFormat, type ReferenceType, type TermCategory, type IssueType, type ExtractedNumeric, type ExtractedDate, type ExtractedTerm, type ExtractedReference, type ConsistencyIssue, type ConsistencyCheckResult, type CheckStatistics, type CustomRule, type ReporterConfig, type NumericExtractorConfig, type DateExtractorConfig, type TermExtractorConfig, type ReferenceExtractorConfig, type NumericValidatorConfig, type DateValidatorConfig, type TermValidatorConfig, type ReferenceValidatorConfig, type DocumentLoaderConfig, } from './consistency/index.js';
|
|
25
|
+
export { DeepResearchAgent, TokenTracker, KnowledgeStore, AnswerEvaluator, ActionTracker, ActionRouter, QueryRewriter, BaseActionHandler, SearchActionHandler, VisitActionHandler, ReflectActionHandler, AnswerActionHandler, CodingActionHandler, } from './research/agent/index.js';
|
|
26
|
+
export type { DeepResearchAgentOptions, AgentEvent, AgentEventType, AgentEventListener, ActionType, AgentConfig, AgentResearchResult, KnowledgeItem, ActionContext, StepAction, StepDecision, LLMClientInterface, AnswerEvaluatorOptions, EvaluationResponse, QuestionAnalysis, ActionRouterOptions, DecisionContext, QueryRewriterOptions, RewriteResult, IntentLayer, TokenTrackerOptions, TokenUsage as AgentTokenUsage, ActionResult, ExecutionContext, } from './research/agent/index.js';
|
|
25
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -39,4 +39,6 @@ NumericValidator, DateValidator, TermValidator, ReferenceValidator,
|
|
|
39
39
|
ConsistencyReporter,
|
|
40
40
|
// Loader
|
|
41
41
|
DocumentLoader, } from './consistency/index.js';
|
|
42
|
+
// Deep Research Agent
|
|
43
|
+
export { DeepResearchAgent, TokenTracker, KnowledgeStore, AnswerEvaluator, ActionTracker, ActionRouter, QueryRewriter, BaseActionHandler, SearchActionHandler, VisitActionHandler, ReflectActionHandler, AnswerActionHandler, CodingActionHandler, } from './research/agent/index.js';
|
|
42
44
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,KAAK;AACL,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,iBAAiB,GAQlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,GAOjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,GAKb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,GAId,MAAM,oBAAoB,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EACL,iBAAiB,GA2ClB,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,qBAAqB;AAKrB,iDAAiD;AACjD,kBAAkB,GAOnB,MAAM,uBAAuB,CAAC;AAE/B,yBAAyB;AACzB,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAiBlB,MAAM,qBAAqB,CAAC;AAE7B,0BAA0B;AAC1B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,oBAAoB,GAuBrB,MAAM,kBAAkB,CAAC;AAE1B,wBAAwB;AACxB,OAAO,EACL,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,GA4B3B,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,GAqBnB,MAAM,gBAAgB,CAAC;AAExB,4BAA4B;AAC5B,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GAuBrB,MAAM,wBAAwB,CAAC;AAEhC,wCAAwC;AACxC,OAAO,EACL,0BAA0B;AAC1B,aAAa;AACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB;AAClB,aAAa;AACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB;AAClB,WAAW;AACX,mBAAmB;AACnB,SAAS;AACT,cAAc,GA8Bf,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,KAAK;AACL,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,iBAAiB,GAQlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,GAOjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,GAKb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,GAId,MAAM,oBAAoB,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EACL,iBAAiB,GA2ClB,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,qBAAqB;AAKrB,iDAAiD;AACjD,kBAAkB,GAOnB,MAAM,uBAAuB,CAAC;AAE/B,yBAAyB;AACzB,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAiBlB,MAAM,qBAAqB,CAAC;AAE7B,0BAA0B;AAC1B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,oBAAoB,GAuBrB,MAAM,kBAAkB,CAAC;AAE1B,wBAAwB;AACxB,OAAO,EACL,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,GA4B3B,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,GAqBnB,MAAM,gBAAgB,CAAC;AAExB,4BAA4B;AAC5B,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GAuBrB,MAAM,wBAAwB,CAAC;AAEhC,wCAAwC;AACxC,OAAO,EACL,0BAA0B;AAC1B,aAAa;AACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB;AAClB,aAAa;AACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB;AAClB,WAAW;AACX,mBAAmB;AACnB,SAAS;AACT,cAAc,GA8Bf,MAAM,wBAAwB,CAAC;AAEhC,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ActionRouter - 次のアクション決定ロジック
|
|
3
|
+
*
|
|
4
|
+
* @requirement REQ-DR-001
|
|
5
|
+
* @design DES-v2.1.0-DeepResearchAgent
|
|
6
|
+
*/
|
|
7
|
+
import type { LLMClientInterface, StepDecision, KnowledgeItem, AgentConfig, EvaluationResponse, QuestionType } from './types.js';
|
|
8
|
+
import type { TokenTracker } from './TokenTracker.js';
|
|
9
|
+
import type { ActionTracker } from './ActionTracker.js';
|
|
10
|
+
/**
|
|
11
|
+
* アクションルーターのオプション
|
|
12
|
+
*/
|
|
13
|
+
export interface ActionRouterOptions {
|
|
14
|
+
/** LLMクライアント */
|
|
15
|
+
llmClient: LLMClientInterface;
|
|
16
|
+
/** エージェント設定 */
|
|
17
|
+
config: AgentConfig;
|
|
18
|
+
/** トークントラッカー */
|
|
19
|
+
tokenTracker: TokenTracker;
|
|
20
|
+
/** アクショントラッカー */
|
|
21
|
+
actionTracker: ActionTracker;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 決定コンテキスト
|
|
25
|
+
*/
|
|
26
|
+
export interface DecisionContext {
|
|
27
|
+
/** 元の質問 */
|
|
28
|
+
question: string;
|
|
29
|
+
/** 質問タイプ */
|
|
30
|
+
questionType: QuestionType;
|
|
31
|
+
/** 現在のナレッジアイテム */
|
|
32
|
+
knowledge: KnowledgeItem[];
|
|
33
|
+
/** 訪問済みURL */
|
|
34
|
+
visitedUrls: string[];
|
|
35
|
+
/** 検索結果から得たURL候補 */
|
|
36
|
+
searchResultUrls: {
|
|
37
|
+
index: number;
|
|
38
|
+
url: string;
|
|
39
|
+
title: string;
|
|
40
|
+
}[];
|
|
41
|
+
/** 直近の回答評価(あれば) */
|
|
42
|
+
lastEvaluation?: EvaluationResponse;
|
|
43
|
+
/** 現在のステップ番号 */
|
|
44
|
+
stepNumber: number;
|
|
45
|
+
/** Beastモード有効 */
|
|
46
|
+
beastMode?: boolean;
|
|
47
|
+
/** サブ質問(reflectアクションから生成) */
|
|
48
|
+
subQuestions?: string[];
|
|
49
|
+
/** 回答済みサブ質問 */
|
|
50
|
+
answeredSubQuestions?: string[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 次のアクションを決定するルーター
|
|
54
|
+
*
|
|
55
|
+
* jina-aiの実装を参考に、以下の5アクションをサポート:
|
|
56
|
+
* - search: Web検索
|
|
57
|
+
* - visit: URLアクセス
|
|
58
|
+
* - reflect: サブ質問への分解
|
|
59
|
+
* - answer: 回答生成
|
|
60
|
+
* - coding: コード実行(計算・データ処理)
|
|
61
|
+
*/
|
|
62
|
+
export declare class ActionRouter {
|
|
63
|
+
private llmClient;
|
|
64
|
+
private config;
|
|
65
|
+
private tokenTracker;
|
|
66
|
+
private actionTracker;
|
|
67
|
+
constructor(options: ActionRouterOptions);
|
|
68
|
+
/**
|
|
69
|
+
* 次のアクションを決定
|
|
70
|
+
*/
|
|
71
|
+
decide(context: DecisionContext): Promise<StepDecision>;
|
|
72
|
+
/**
|
|
73
|
+
* LLMに次のアクションを問い合わせ
|
|
74
|
+
*/
|
|
75
|
+
private askLLMForDecision;
|
|
76
|
+
/**
|
|
77
|
+
* システムプロンプトを構築
|
|
78
|
+
*/
|
|
79
|
+
private buildSystemPrompt;
|
|
80
|
+
/**
|
|
81
|
+
* ユーザープロンプトを構築
|
|
82
|
+
*/
|
|
83
|
+
private buildUserPrompt;
|
|
84
|
+
/**
|
|
85
|
+
* LLMレスポンスをパース
|
|
86
|
+
*/
|
|
87
|
+
private parseDecisionResponse;
|
|
88
|
+
/**
|
|
89
|
+
* パラメータを正規化
|
|
90
|
+
*/
|
|
91
|
+
private normalizeParams;
|
|
92
|
+
/**
|
|
93
|
+
* 回答決定を生成
|
|
94
|
+
*/
|
|
95
|
+
private createAnswerDecision;
|
|
96
|
+
/**
|
|
97
|
+
* デフォルト決定を生成(パース失敗時)
|
|
98
|
+
*/
|
|
99
|
+
private createDefaultDecision;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=ActionRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionRouter.d.ts","sourceRoot":"","sources":["../../../src/research/agent/ActionRouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAElB,YAAY,EACZ,aAAa,EACb,WAAW,EAMX,kBAAkB,EAClB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gBAAgB;IAChB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,eAAe;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,gBAAgB;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB;IAClB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,cAAc;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB;IACpB,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,mBAAmB;IACnB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe;IACf,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,OAAO,EAAE,mBAAmB;IAOxC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IA0B7D;;OAEG;YACW,iBAAiB;IAyB/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkCzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgEvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,eAAe;IA+CvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAyB9B"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ActionRouter - 次のアクション決定ロジック
|
|
3
|
+
*
|
|
4
|
+
* @requirement REQ-DR-001
|
|
5
|
+
* @design DES-v2.1.0-DeepResearchAgent
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 次のアクションを決定するルーター
|
|
9
|
+
*
|
|
10
|
+
* jina-aiの実装を参考に、以下の5アクションをサポート:
|
|
11
|
+
* - search: Web検索
|
|
12
|
+
* - visit: URLアクセス
|
|
13
|
+
* - reflect: サブ質問への分解
|
|
14
|
+
* - answer: 回答生成
|
|
15
|
+
* - coding: コード実行(計算・データ処理)
|
|
16
|
+
*/
|
|
17
|
+
export class ActionRouter {
|
|
18
|
+
llmClient;
|
|
19
|
+
config;
|
|
20
|
+
tokenTracker;
|
|
21
|
+
actionTracker;
|
|
22
|
+
constructor(options) {
|
|
23
|
+
this.llmClient = options.llmClient;
|
|
24
|
+
this.config = options.config;
|
|
25
|
+
this.tokenTracker = options.tokenTracker;
|
|
26
|
+
this.actionTracker = options.actionTracker;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 次のアクションを決定
|
|
30
|
+
*/
|
|
31
|
+
async decide(context) {
|
|
32
|
+
// Beastモードの場合は強制的に回答
|
|
33
|
+
if (context.beastMode) {
|
|
34
|
+
return this.createAnswerDecision(context, true);
|
|
35
|
+
}
|
|
36
|
+
// トークン予算超過の場合は回答を強制
|
|
37
|
+
if (this.tokenTracker.isExceeded()) {
|
|
38
|
+
return this.createAnswerDecision(context, true);
|
|
39
|
+
}
|
|
40
|
+
// 最大ステップ数超過の場合も回答を強制
|
|
41
|
+
if (context.stepNumber >= this.config.maxSteps) {
|
|
42
|
+
return this.createAnswerDecision(context, true);
|
|
43
|
+
}
|
|
44
|
+
// パターン検出(ループや進捗なし)
|
|
45
|
+
const pattern = this.actionTracker.detectPattern();
|
|
46
|
+
if (pattern.stuckInLoop || pattern.noProgress) {
|
|
47
|
+
return this.createAnswerDecision(context, true);
|
|
48
|
+
}
|
|
49
|
+
// LLMに次のアクションを決定させる
|
|
50
|
+
return this.askLLMForDecision(context);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* LLMに次のアクションを問い合わせ
|
|
54
|
+
*/
|
|
55
|
+
async askLLMForDecision(context) {
|
|
56
|
+
const systemPrompt = this.buildSystemPrompt();
|
|
57
|
+
const userPrompt = this.buildUserPrompt(context);
|
|
58
|
+
const response = await this.llmClient.chat({
|
|
59
|
+
messages: [
|
|
60
|
+
{ role: 'system', content: systemPrompt },
|
|
61
|
+
{ role: 'user', content: userPrompt },
|
|
62
|
+
],
|
|
63
|
+
temperature: 0.7,
|
|
64
|
+
maxTokens: 2000,
|
|
65
|
+
});
|
|
66
|
+
// トークン使用量を追跡
|
|
67
|
+
if (response.usage) {
|
|
68
|
+
this.tokenTracker.trackUsage(response.usage.promptTokens ?? 0, response.usage.completionTokens ?? 0);
|
|
69
|
+
}
|
|
70
|
+
// レスポンスをパース
|
|
71
|
+
return this.parseDecisionResponse(response.content, context);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* システムプロンプトを構築
|
|
75
|
+
*/
|
|
76
|
+
buildSystemPrompt() {
|
|
77
|
+
return `You are a research agent that decides the next action to take to answer a user's question.
|
|
78
|
+
|
|
79
|
+
Available actions:
|
|
80
|
+
1. **search** - Search the web for information. Use when you need to find new information.
|
|
81
|
+
Parameters: searchQueries (array of 1-5 search queries)
|
|
82
|
+
|
|
83
|
+
2. **visit** - Visit specific URLs to extract information. Use when you have promising URLs from search results.
|
|
84
|
+
Parameters: urlTargets (array of URL indices to visit)
|
|
85
|
+
|
|
86
|
+
3. **reflect** - Break down the question into sub-questions. Use when the question is complex.
|
|
87
|
+
Parameters: questions (array of sub-questions)
|
|
88
|
+
|
|
89
|
+
4. **answer** - Provide an answer based on gathered knowledge. Use when you have enough information.
|
|
90
|
+
Parameters: answer (the answer text), references (cited sources)
|
|
91
|
+
|
|
92
|
+
5. **coding** - Execute code for calculations or data processing. Use for math, dates, or data analysis.
|
|
93
|
+
Parameters: codingIssue (description of what to compute), code (Python code to execute)
|
|
94
|
+
|
|
95
|
+
Decision Guidelines:
|
|
96
|
+
- Start with **search** if you have no knowledge about the topic
|
|
97
|
+
- Use **visit** to get detailed information from promising search results
|
|
98
|
+
- Use **reflect** for complex questions that need to be broken down
|
|
99
|
+
- Use **answer** when you have sufficient information (at least 3-5 knowledge items)
|
|
100
|
+
- Use **coding** for calculations, date computations, or data analysis
|
|
101
|
+
|
|
102
|
+
Respond in JSON format:
|
|
103
|
+
{
|
|
104
|
+
"think": "Your reasoning for this decision",
|
|
105
|
+
"action": "search|visit|reflect|answer|coding",
|
|
106
|
+
"params": { ... }
|
|
107
|
+
}`;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* ユーザープロンプトを構築
|
|
111
|
+
*/
|
|
112
|
+
buildUserPrompt(context) {
|
|
113
|
+
const parts = [];
|
|
114
|
+
// 元の質問
|
|
115
|
+
parts.push(`## Question\n${context.question}`);
|
|
116
|
+
parts.push(`Question Type: ${context.questionType}`);
|
|
117
|
+
// 現在のナレッジ
|
|
118
|
+
if (context.knowledge.length > 0) {
|
|
119
|
+
parts.push(`\n## Current Knowledge (${context.knowledge.length} items)`);
|
|
120
|
+
for (const item of context.knowledge.slice(-10)) {
|
|
121
|
+
// 直近10件
|
|
122
|
+
parts.push(`- [${item.id}] ${item.summary.slice(0, 200)}...`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
parts.push('\n## Current Knowledge\nNo knowledge gathered yet.');
|
|
127
|
+
}
|
|
128
|
+
// 検索結果からのURL候補
|
|
129
|
+
if (context.searchResultUrls.length > 0) {
|
|
130
|
+
parts.push(`\n## Available URLs from Search`);
|
|
131
|
+
for (const url of context.searchResultUrls.slice(0, 10)) {
|
|
132
|
+
const visited = context.visitedUrls.includes(url.url) ? ' (visited)' : '';
|
|
133
|
+
parts.push(`[${url.index}] ${url.title}${visited}\n ${url.url}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// ダイアリーコンテキスト
|
|
137
|
+
const diary = this.actionTracker.getDiaryContext();
|
|
138
|
+
if (diary.length > 0) {
|
|
139
|
+
parts.push(`\n## Previous Actions`);
|
|
140
|
+
parts.push(diary.slice(-5).join('\n')); // 直近5件
|
|
141
|
+
}
|
|
142
|
+
// 直近の評価結果
|
|
143
|
+
if (context.lastEvaluation) {
|
|
144
|
+
parts.push(`\n## Last Answer Evaluation`);
|
|
145
|
+
parts.push(`Pass: ${context.lastEvaluation.pass}`);
|
|
146
|
+
if (!context.lastEvaluation.pass) {
|
|
147
|
+
parts.push(`Missing: ${context.lastEvaluation.think}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// サブ質問
|
|
151
|
+
if (context.subQuestions && context.subQuestions.length > 0) {
|
|
152
|
+
parts.push(`\n## Sub-questions to Answer`);
|
|
153
|
+
for (const q of context.subQuestions) {
|
|
154
|
+
const answered = context.answeredSubQuestions?.includes(q) ? ' ✓' : '';
|
|
155
|
+
parts.push(`- ${q}${answered}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// 残りトークン予算
|
|
159
|
+
const remaining = this.tokenTracker.getRemainingBudget();
|
|
160
|
+
const usageRatio = this.tokenTracker.getUsageRatio();
|
|
161
|
+
parts.push(`\n## Token Budget`);
|
|
162
|
+
parts.push(`Remaining: ${remaining} tokens (${((1 - usageRatio) * 100).toFixed(1)}%)`);
|
|
163
|
+
parts.push(`\n## Current Step: ${context.stepNumber + 1}/${this.config.maxSteps}`);
|
|
164
|
+
parts.push('\nDecide the next action:');
|
|
165
|
+
return parts.join('\n');
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* LLMレスポンスをパース
|
|
169
|
+
*/
|
|
170
|
+
parseDecisionResponse(response, context) {
|
|
171
|
+
try {
|
|
172
|
+
// JSON部分を抽出
|
|
173
|
+
const jsonMatch = response.match(/\{[\s\S]*\}/);
|
|
174
|
+
if (!jsonMatch) {
|
|
175
|
+
throw new Error('No JSON found in response');
|
|
176
|
+
}
|
|
177
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
178
|
+
// アクションタイプを検証
|
|
179
|
+
const validActions = ['search', 'visit', 'reflect', 'answer', 'coding'];
|
|
180
|
+
if (!validActions.includes(parsed.action)) {
|
|
181
|
+
throw new Error(`Invalid action: ${parsed.action}`);
|
|
182
|
+
}
|
|
183
|
+
// パラメータを正規化
|
|
184
|
+
const params = this.normalizeParams(parsed.action, parsed.params, context);
|
|
185
|
+
return {
|
|
186
|
+
think: parsed.think || 'Proceeding with action',
|
|
187
|
+
action: parsed.action,
|
|
188
|
+
params,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
// パース失敗時はデフォルトアクションを返す
|
|
193
|
+
console.warn('Failed to parse decision response:', error);
|
|
194
|
+
return this.createDefaultDecision(context);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* パラメータを正規化
|
|
199
|
+
*/
|
|
200
|
+
normalizeParams(action, params, context) {
|
|
201
|
+
switch (action) {
|
|
202
|
+
case 'search':
|
|
203
|
+
return {
|
|
204
|
+
searchQueries: Array.isArray(params.searchQueries)
|
|
205
|
+
? params.searchQueries.slice(0, 5)
|
|
206
|
+
: [context.question],
|
|
207
|
+
};
|
|
208
|
+
case 'visit':
|
|
209
|
+
return {
|
|
210
|
+
urlTargets: Array.isArray(params.urlTargets)
|
|
211
|
+
? params.urlTargets.slice(0, 5)
|
|
212
|
+
: [0],
|
|
213
|
+
};
|
|
214
|
+
case 'reflect':
|
|
215
|
+
return {
|
|
216
|
+
questions: Array.isArray(params.questions)
|
|
217
|
+
? params.questions.slice(0, 5)
|
|
218
|
+
: [`What are the key aspects of: ${context.question}`],
|
|
219
|
+
};
|
|
220
|
+
case 'answer':
|
|
221
|
+
return {
|
|
222
|
+
answer: typeof params.answer === 'string' ? params.answer : '',
|
|
223
|
+
references: Array.isArray(params.references)
|
|
224
|
+
? params.references
|
|
225
|
+
: [],
|
|
226
|
+
isFinal: params.isFinal,
|
|
227
|
+
};
|
|
228
|
+
case 'coding':
|
|
229
|
+
return {
|
|
230
|
+
codingIssue: typeof params.codingIssue === 'string' ? params.codingIssue : '',
|
|
231
|
+
code: typeof params.code === 'string' ? params.code : '',
|
|
232
|
+
};
|
|
233
|
+
default:
|
|
234
|
+
return { searchQueries: [context.question] };
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* 回答決定を生成
|
|
239
|
+
*/
|
|
240
|
+
createAnswerDecision(context, forced) {
|
|
241
|
+
const reason = forced
|
|
242
|
+
? 'Forced to answer due to constraints (budget/steps/loop)'
|
|
243
|
+
: 'Sufficient information gathered to answer';
|
|
244
|
+
// ナレッジから回答を生成する基盤を準備
|
|
245
|
+
const knowledgeSummary = context.knowledge
|
|
246
|
+
.map((k) => k.summary)
|
|
247
|
+
.join('\n')
|
|
248
|
+
.slice(0, 5000);
|
|
249
|
+
return {
|
|
250
|
+
think: reason,
|
|
251
|
+
action: 'answer',
|
|
252
|
+
params: {
|
|
253
|
+
answer: `Based on the gathered information:\n\n${knowledgeSummary || 'No information available.'}`,
|
|
254
|
+
references: context.knowledge.map((k) => k.sourceId),
|
|
255
|
+
isFinal: forced,
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* デフォルト決定を生成(パース失敗時)
|
|
261
|
+
*/
|
|
262
|
+
createDefaultDecision(context) {
|
|
263
|
+
// ナレッジがない場合は検索
|
|
264
|
+
if (context.knowledge.length === 0) {
|
|
265
|
+
return {
|
|
266
|
+
think: 'Starting with a web search to gather initial information',
|
|
267
|
+
action: 'search',
|
|
268
|
+
params: { searchQueries: [context.question] },
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
// 未訪問URLがある場合は訪問
|
|
272
|
+
const unvisitedUrls = context.searchResultUrls.filter((u) => !context.visitedUrls.includes(u.url));
|
|
273
|
+
if (unvisitedUrls.length > 0) {
|
|
274
|
+
return {
|
|
275
|
+
think: 'Visiting unread URLs to gather more information',
|
|
276
|
+
action: 'visit',
|
|
277
|
+
params: { urlTargets: unvisitedUrls.slice(0, 3).map((u) => u.index) },
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
// 十分なナレッジがある場合は回答
|
|
281
|
+
return this.createAnswerDecision(context, false);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=ActionRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionRouter.js","sourceRoot":"","sources":["../../../src/research/agent/ActionRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ActionTracker - アクション履歴追跡
|
|
3
|
+
*
|
|
4
|
+
* @requirement REQ-DR-005
|
|
5
|
+
* @design DES-v2.1.0-DeepResearchAgent
|
|
6
|
+
*/
|
|
7
|
+
import type { ActionType, DiaryEntry, StepAction } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* 実行されたアクションの履歴を追跡するクラス
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const tracker = new ActionTracker();
|
|
14
|
+
*
|
|
15
|
+
* tracker.trackAction({
|
|
16
|
+
* stepNumber: 1,
|
|
17
|
+
* action: 'search',
|
|
18
|
+
* think: 'Looking for information about...',
|
|
19
|
+
* params: { searchQueries: ['AI ethics'] },
|
|
20
|
+
* timestamp: new Date().toISOString(),
|
|
21
|
+
* success: true,
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* const diary = tracker.getDiaryContext();
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class ActionTracker {
|
|
28
|
+
private steps;
|
|
29
|
+
private diaryEntries;
|
|
30
|
+
private thoughts;
|
|
31
|
+
constructor();
|
|
32
|
+
/**
|
|
33
|
+
* アクションを記録
|
|
34
|
+
*/
|
|
35
|
+
trackAction(step: StepAction): void;
|
|
36
|
+
/**
|
|
37
|
+
* 思考を記録
|
|
38
|
+
*/
|
|
39
|
+
trackThink(think: string, _languageCode?: string, params?: Record<string, string>): void;
|
|
40
|
+
/**
|
|
41
|
+
* 全ステップを取得
|
|
42
|
+
*/
|
|
43
|
+
getSteps(): StepAction[];
|
|
44
|
+
/**
|
|
45
|
+
* 最新のステップを取得
|
|
46
|
+
*/
|
|
47
|
+
getLastStep(): StepAction | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* 特定タイプのステップを取得
|
|
50
|
+
*/
|
|
51
|
+
getStepsByAction(action: ActionType): StepAction[];
|
|
52
|
+
/**
|
|
53
|
+
* ダイアリーコンテキストを取得(人間が読める形式)
|
|
54
|
+
*/
|
|
55
|
+
getDiaryContext(): string[];
|
|
56
|
+
/**
|
|
57
|
+
* ステップ数を取得
|
|
58
|
+
*/
|
|
59
|
+
getStepCount(): number;
|
|
60
|
+
/**
|
|
61
|
+
* 成功したステップ数を取得
|
|
62
|
+
*/
|
|
63
|
+
getSuccessCount(): number;
|
|
64
|
+
/**
|
|
65
|
+
* 失敗したステップ数を取得
|
|
66
|
+
*/
|
|
67
|
+
getFailureCount(): number;
|
|
68
|
+
/**
|
|
69
|
+
* アクションタイプ別の統計を取得
|
|
70
|
+
*/
|
|
71
|
+
getActionStats(): Record<ActionType, {
|
|
72
|
+
total: number;
|
|
73
|
+
success: number;
|
|
74
|
+
failure: number;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* リセット
|
|
78
|
+
*/
|
|
79
|
+
reset(): void;
|
|
80
|
+
/**
|
|
81
|
+
* ダイアリーエントリを生成
|
|
82
|
+
*/
|
|
83
|
+
private createDiaryEntry;
|
|
84
|
+
/**
|
|
85
|
+
* ダイアリーエントリをフォーマット
|
|
86
|
+
*/
|
|
87
|
+
private formatDiaryEntry;
|
|
88
|
+
/**
|
|
89
|
+
* 特定のパターンを検出(同じ検索を繰り返しているなど)
|
|
90
|
+
*/
|
|
91
|
+
detectPattern(): {
|
|
92
|
+
repeatedSearches: boolean;
|
|
93
|
+
stuckInLoop: boolean;
|
|
94
|
+
noProgress: boolean;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* JSONにシリアライズ
|
|
98
|
+
*/
|
|
99
|
+
toJSON(): {
|
|
100
|
+
steps: StepAction[];
|
|
101
|
+
diaryEntries: DiaryEntry[];
|
|
102
|
+
thoughts: string[];
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=ActionTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionTracker.d.ts","sourceRoot":"","sources":["../../../src/research/agent/ActionTracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAW;;IAQ3B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQnC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAUxF;;OAEG;IACH,QAAQ,IAAI,UAAU,EAAE;IAIxB;;OAEG;IACH,WAAW,IAAI,UAAU,GAAG,SAAS;IAIrC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE;IAIlD;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBzF;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2CxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,aAAa,IAAI;QACf,gBAAgB,EAAE,OAAO,CAAC;QAC1B,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACrB;IA6BD;;OAEG;IACH,MAAM,IAAI;QACR,KAAK,EAAE,UAAU,EAAE,CAAC;QACpB,YAAY,EAAE,UAAU,EAAE,CAAC;QAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB;CAOF"}
|