Skip to main content
Prerequisites
  • Python 3.10 or higher
  • pip install praisonaiagents jira
  • Jira Cloud API token (generate here)

Quick Start

1

Set Environment Variables

export JIRA_URL="https://your-domain.atlassian.net"
export JIRA_EMAIL="your-email@example.com"
export JIRA_API_TOKEN="your-api-token"
2

Create a Jira Agent

from praisonaiagents import Agent
from praisonai_tools import (
    jira_create_task,
    jira_search,
    jira_list_boards,
    jira_get_board_issues,
    jira_get_transitions,
    jira_move_issue,
)

agent = Agent(
    name="JiraManager",
    role="Jira Project Manager",
    goal="Manage Jira Kanban board and track tasks through workflow stages",
    instructions="You manage a Jira project. The project key is 'PROJ' and the board ID is 1.",
    tools=[
        jira_create_task,
        jira_search,
        jira_list_boards,
        jira_get_board_issues,
        jira_get_transitions,
        jira_move_issue,
    ],
)

agent.start("List all boards, then create a task called 'Setup CI pipeline' and move it to In Progress")

How It Works


Available Tools

FunctionDescription
jira_search(jql)Search issues with JQL queries
jira_create_task(project, summary, ...)Create a new task
jira_list_boards(board_type)List all Kanban/Scrum boards
jira_get_board_issues(board_id, jql)Get issues on a board
jira_get_transitions(issue_key)Get available status transitions
jira_move_issue(issue_key, status)Move issue to a status (e.g., “In Progress”, “Done”)

Common Patterns

Kanban Workflow Agent

An agent that manages the full Kanban lifecycle — creates tasks, moves them through stages, and verifies completion.
from praisonaiagents import Agent
from praisonai_tools import (
    jira_create_task,
    jira_search,
    jira_list_boards,
    jira_get_board_issues,
    jira_get_transitions,
    jira_move_issue,
)

agent = Agent(
    name="KanbanManager",
    role="Kanban Board Manager",
    goal="Manage tasks through the Kanban workflow",
    instructions="""You manage a Jira Kanban board.
    
The project key is 'KAN' and the board ID is 2.

Follow these steps:
1. List boards to confirm the board exists
2. Get current board issues to see what's there
3. Create a new task
4. Get transitions for the new issue
5. Move it to 'In Progress'
6. Move it to 'Done'
7. Search to confirm final status""",
    tools=[
        jira_create_task,
        jira_search,
        jira_list_boards,
        jira_get_board_issues,
        jira_get_transitions,
        jira_move_issue,
    ],
    llm="gpt-4o-mini",
)

result = agent.start(
    "Create a task 'Setup CI pipeline' in KAN project, "
    "move it through In Progress to Done, and verify the final status."
)
print(result)

Issue Search and Reporting

from praisonaiagents import Agent
from praisonai_tools import jira_search

agent = Agent(
    name="JiraReporter",
    role="Jira Reporter",
    goal="Search and report on Jira issues",
    tools=[jira_search],
)

agent.start("Find all open bugs in project KAN and summarize them")

Multi-Agent Project Management

from praisonaiagents import Agent, Task, PraisonAIAgents
from praisonai_tools import (
    jira_create_task,
    jira_search,
    jira_get_transitions,
    jira_move_issue,
)

# Planner creates tasks
planner = Agent(
    name="Planner",
    role="Sprint Planner",
    goal="Plan and create sprint tasks",
    tools=[jira_create_task, jira_search],
)

# Tracker moves tasks through workflow
tracker = Agent(
    name="Tracker",
    role="Progress Tracker",
    goal="Track and update task statuses",
    tools=[jira_get_transitions, jira_move_issue, jira_search],
)

plan_task = Task(
    description="Create 3 tasks for a 'User Auth' feature in project KAN: Login page, Session management, Password reset",
    agent=planner,
    name="plan_sprint"
)

track_task = Task(
    description="Move all newly created auth tasks to 'In Progress'",
    agent=tracker,
    name="track_progress"
)

agents = PraisonAIAgents(
    agents=[planner, tracker],
    tasks=[plan_task, track_task],
    process="sequential"
)
agents.start()

Configuration

Environment Variables

VariableRequiredDescription
JIRA_URLJira instance URL (e.g., https://your-domain.atlassian.net)
JIRA_EMAILEmail associated with your Jira account
JIRA_API_TOKENAPI token from Atlassian API tokens

Create Task Parameters

ParameterTypeRequiredDescription
projectstrProject key (e.g., "KAN")
summarystrTask title
descriptionstrTask description
issue_typestrIssue type (default: "Task")
prioritystrPriority level
assigneestrAssignee username

Best Practices

Include the project key and board ID directly in the agent’s instructions so it doesn’t need to guess:
instructions="The project key is 'KAN' and the board ID is 2."
JQL gives exact control over search results:
jira_search("project = KAN AND status = 'In Progress' ORDER BY created DESC")
Always let the agent call jira_get_transitions before jira_move_issue so it knows what transitions are available for the current status.
Jira operations are straightforward tool calls. gpt-4o-mini handles them well at lower cost.