# Using Agent in Workflow

Now you'll create a workflow step that uses your AI agent to provide intelligent content analysis.

In each step, in the execute function, you have access to the `mastra` class which provides you the ability to access Agents, Tools, and even other Workflows. In this case, we use the `mastra` class to get our agent and call that agent's `generate()` function.

## Creating an AI Analysis Step

Add this step to your workflow file:

```typescript
const aiAnalysisStep = createStep({
  id: 'ai-analysis',
  description: 'AI-powered content analysis',
  inputSchema: z.object({
    content: z.string(),
    type: z.string(),
    wordCount: z.number(),
    metadata: z.object({
      readingTime: z.number(),
      difficulty: z.enum(['easy', 'medium', 'hard']),
      processedAt: z.string(),
    }),
    summary: z.string(),
  }),
  outputSchema: z.object({
    content: z.string(),
    type: z.string(),
    wordCount: z.number(),
    metadata: z.object({
      readingTime: z.number(),
      difficulty: z.enum(['easy', 'medium', 'hard']),
      processedAt: z.string(),
    }),
    summary: z.string(),
    aiAnalysis: z.object({
      score: z.number(),
      feedback: z.string(),
    }),
  }),
  execute: async ({ inputData, mastra }) => {
    const { content, type, wordCount, metadata, summary } = inputData

    // Create prompt for the AI agent
    const prompt = `
Analyze this ${type} content:

Content: "${content}"
Word count: ${wordCount}
Reading time: ${metadata.readingTime} minutes
Difficulty: ${metadata.difficulty}

Please provide:
1. A quality score from 1-10
2. Brief feedback on strengths and areas for improvement

Format as JSON: {"score": number, "feedback": "your feedback here"}
    `

    // Get the contentAgent from the mastra instance.
    const contentAgent = mastra.getAgent('contentAgent')
    const { text } = await contentAgent.generate([{ role: 'user', content: prompt }])

    // Parse AI response (with fallback)
    let aiAnalysis
    try {
      aiAnalysis = JSON.parse(text)
    } catch {
      aiAnalysis = {
        score: 7,
        feedback: 'AI analysis completed. ' + text,
      }
    }

    console.log(`🤖 AI Score: ${aiAnalysis.score}/10`)

    return {
      content,
      type,
      wordCount,
      metadata,
      summary,
      aiAnalysis,
    }
  },
})
```

Your agent-powered step is ready! Next, you'll add it to your workflow for complete AI-enhanced content processing.
