32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { BaseSubagent } from '../base-subagent.js';
|
|
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
import type { FastifyBaseLogger } from 'fastify';
|
|
import type { MCPClientConnector } from '../../mcp-client.js';
|
|
|
|
/**
|
|
* Strategy Subagent
|
|
*
|
|
* Specialized agent for writing PandasStrategy classes, running backtests,
|
|
* and managing strategy activation/deactivation.
|
|
*/
|
|
export class StrategySubagent extends BaseSubagent {
|
|
protected getRecursionLimit() { return 30; }
|
|
protected getFallbackText() { return 'Strategy task completed.'; }
|
|
}
|
|
|
|
/**
|
|
* Factory function to create and initialize StrategySubagent
|
|
*/
|
|
export async function createStrategySubagent(
|
|
model: BaseChatModel,
|
|
logger: FastifyBaseLogger,
|
|
basePath: string,
|
|
mcpClient?: MCPClientConnector,
|
|
tools?: any[]
|
|
): Promise<StrategySubagent> {
|
|
const config = await BaseSubagent.loadConfig(basePath);
|
|
const subagent = new StrategySubagent(config, model, logger, mcpClient, tools);
|
|
await subagent.initialize(basePath);
|
|
return subagent;
|
|
}
|