agentskit.js
Recipes

Recipe: Jira triage agent

An agent that watches a Jira project, classifies new tickets, and assigns them — using the jira integration.

A common operations chore: triage incoming bugs into severity + component buckets and tag the right team. Easy to half-automate with a runtime + the Jira integration.

import { createRuntime } from '@agentskit/runtime'
import { anthropic } from '@agentskit/adapters'
import { jira } from '@agentskit/tools/integrations'
import { sqliteChatMemory } from '@agentskit/memory'

const tools = jira({
  baseUrl: 'https://my-org.atlassian.net',
  email: process.env.JIRA_EMAIL!,
  apiToken: process.env.JIRA_API_TOKEN!,
})

const runtime = createRuntime({
  adapter: anthropic({ apiKey: KEY, model: 'claude-sonnet-4-6' }),
  tools,
  memory: sqliteChatMemory({ path: './sessions/triage.db' }),
  systemPrompt: `You triage Jira tickets. For each new bug:
1. Read the description.
2. Pick severity: blocker / critical / major / minor / trivial.
3. Pick component label from: api, web, mobile, infra, docs.
4. Add a 1-line summary as a comment.
Refuse to triage if information is insufficient — ask for repro steps.`,
})

await runtime.run(
  'List all bugs in MYPROJ created in the last 24h with no priority. Triage each.',
)

#Run on a cron

Pair with the runtime's background helpers to fire daily:

import { createCronScheduler } from '@agentskit/runtime'

const scheduler = createCronScheduler([{
  schedule: '0 9 * * *',  // 9am every day
  agent: { name: 'jira-triage', run: () => runtime.run('Triage new bugs.') },
}])

scheduler.start()

See Background agents for the full surface.

  • linear-triage — same shape for Linear.
  • pagerduty — escalate critical tickets.
  • slack — post the triage summary back to the team.

Explore nearby

✎ Edit this page on GitHub·Found a problem? Open an issue →·How to contribute →

On this page