andy-stack_vaultkeeper-ai/AIClasses/FunctionDefinitions/Functions/CreatePlan.ts
Andrew Beal 2de8109a74 refactor: restructure AI prompt and agent architecture for multi-agent planning support
- Move prompts from AIClasses to AIPrompts directory
- Replace centralized IPrompt injection with direct property setters on IAIClass
- Remove allowDestructiveActions parameter from streamRequest methods
- Add toolDefinitions, systemPrompt, and userInstruction properties to IAIClass
- Refactor AIFunctionDefinitions to static methods with agent-specific tool sets
- Add planning agent function definitions (CreatePlan, Replan, CompleteStep, SubmitPlan)
- Create AIControllerService to handle agent orchestration
- Add execution plan related copy strings and replacement utility
- Update all AI providers (Claude, Gemini, OpenAI) to use new architecture
2025-12-30 19:07:00 +00:00

44 lines
No EOL
2.4 KiB
TypeScript

import { AIFunction } from "Enums/AIFunction";
import type { IAIFunctionDefinition } from "../IAIFunctionDefinition";
export const CreatePlan: IAIFunctionDefinition = {
name: AIFunction.CreatePlan,
description: `Requests the planning agent to create a detailed, actionable plan for a high-level goal or task.
Use this function when you need strategic guidance on how to approach a complex
or multi-step request. The planning agent will explore the vault context, analyze
the requirements, and return a structured plan with specific steps for you to execute.
The planning agent specializes in:
- Breaking down complex tasks into atomic, ordered steps
- Conducting exploratory vault searches to inform the plan
- Identifying dependencies and potential failure modes
- Selecting appropriate tools and operations for each step
- Adapting plan complexity to match the task requirements
Call this proactively when:
- The user's request involves multiple operations or phases
- You need to understand vault structure before acting
- The optimal approach is unclear and requires analysis
- The task requires coordination across multiple vault areas
Do NOT use for simple, single-step operations that don't require planning.`,
parameters: {
type: "object",
properties: {
goal: {
type: "string",
description: "The high-level goal or task to plan for. Should clearly describe what needs to be accomplished. Examples: 'Create a comprehensive summary of all machine learning notes', 'Reorganize project notes by topic', 'Research and compile information about quantum computing from the vault'"
},
context: {
type: "string",
description: "Optional additional context that may help inform the planning process. This can include: specific requirements, constraints, user preferences, relevant file paths already identified, or any other information that would help create a better plan. Examples: 'User prefers daily notes in YYYY-MM-DD format', 'Focus on notes created in the last month', 'Should preserve existing wiki-link structure'"
},
user_message: {
type: "string",
description: "A short message to be displayed to the user explaining why you're requesting a plan. Examples: 'Creating a plan to organize your project notes', 'Developing a strategy to compile your research on AI topics'"
}
},
required: ["goal", "user_message"]
}
}