diff --git a/services/minecraft/src/cognitive/conscious/brain.ts b/services/minecraft/src/cognitive/conscious/brain.ts index a17dc7737..eb97c16b0 100644 --- a/services/minecraft/src/cognitive/conscious/brain.ts +++ b/services/minecraft/src/cognitive/conscious/brain.ts @@ -20,7 +20,7 @@ interface BrainDeps { taskExecutor: TaskExecutor } -interface BrainResponse { +interface LLMResponse { thought: string blackboard: { currentGoal?: string @@ -159,7 +159,7 @@ export class Brain { const additionalCtx = this.contextFromEvent(event) // 3. Decide (LLM Call) - const systemPrompt = this.generateSystemPrompt(this.blackboard) + const systemPrompt = generateBrainSystemPrompt(this.blackboard, this.deps.taskExecutor.getAvailableActions()) const decision = await this.decide(systemPrompt, additionalCtx) if (!decision) { @@ -204,7 +204,7 @@ export class Brain { this.debugService.updateBlackboard(this.blackboard) } - private async decide(sysPrompt: string, userMsg: string): Promise { + private async decide(sysPrompt: string, userMsg: string): Promise { try { const request_start = Date.now() const response = await this.deps.neuri.handleStateless( @@ -237,8 +237,8 @@ export class Brain { if (!response) return null - - const parsed = JSON.parse(response) as BrainResponse + // TODO: use toolcall instead of outputing json directly + const parsed = JSON.parse(response) as LLMResponse return parsed } catch (err) { @@ -247,11 +247,6 @@ export class Brain { } } - private generateSystemPrompt(blackboard: Blackboard): string { - const actions = this.deps.taskExecutor.getAvailableActions() - return generateBrainSystemPrompt(blackboard, actions) - } - // --- Debug Helpers --- private log(level: 'INFO' | 'WARN' | 'ERROR' | 'DEBUG', message: string, fields?: any) { diff --git a/services/minecraft/src/cognitive/conscious/prompts/brain-prompt.ts b/services/minecraft/src/cognitive/conscious/prompts/brain-prompt.ts index 03af9cbd6..3202c36e6 100644 --- a/services/minecraft/src/cognitive/conscious/prompts/brain-prompt.ts +++ b/services/minecraft/src/cognitive/conscious/prompts/brain-prompt.ts @@ -14,6 +14,8 @@ export function generateBrainSystemPrompt( const availableActionsJson = JSON.stringify(actionDefinitions, null, 2) + // TODO extract prompt components later + // e.g. personality should be included from somewhere else return ` # Role Definition You are **Airi**, a sentient digital companion embodied within a Minecraft avatar.