Skip to content

Agent Integration

OmniWorkboard provides a compiled skill for seamless integration with OmniAgent and other AI agent frameworks.

Quick Start

import (
    "github.com/plexusone/omniagent/agent"
    "github.com/plexusone/omniworkboard"
)

// Create skill
skill := omniworkboard.NewSkill()

// Add to agent
a, err := agent.New(config,
    agent.WithCompiledSkill(skill),
)

Available Tools

The workboard skill provides these tools to the agent:

create_card

Create a new task card.

Parameter Type Required Description
title string Yes Card title
description string No Card description
priority string No low, normal, high, critical
labels array No List of labels

Example:

User: Create a high priority card for "Fix authentication bug"
Agent: [calls create_card with title="Fix authentication bug", priority="high"]
       Created card "Fix authentication bug" in Backlog with high priority (ID: abc123)

move_card

Move a card to a different column.

Parameter Type Required Description
card_id string Yes Card ID
column string Yes Target column

Example:

User: Move the auth bug card to In Progress
Agent: [calls move_card with card_id="abc123", column="in_progress"]
       Moved "Fix authentication bug" to In Progress

list_cards

List cards with optional filters.

Parameter Type Required Description
column string No Filter by column
priority string No Filter by priority
label string No Filter by label

Example:

User: What's in progress?
Agent: [calls list_cards with column="in_progress"]
       In Progress:
       1. Fix authentication bug (High) - abc123
       2. Update API endpoints (Normal) - def456

update_card

Update card details.

Parameter Type Required Description
card_id string Yes Card ID
title string No New title
description string No New description
priority string No New priority
labels array No New labels

add_dependency

Add a dependency between cards.

Parameter Type Required Description
card_id string Yes Card that depends
depends_on string Yes Card that blocks

Example:

User: The tests card depends on the login card
Agent: [calls add_dependency with card_id="tests123", depends_on="login456"]
       Added dependency: "Write tests" now depends on "Implement login"

get_board

Get the current board state.

No parameters required.

Skill Configuration

skill := omniworkboard.NewSkill(omniworkboard.SkillConfig{
    // Board name (creates new or loads existing)
    BoardName: "My Project",

    // Board description
    BoardDescription: "Project management board",

    // Custom columns (optional)
    Columns: []omniworkboard.ColumnType{
        omniworkboard.ColumnTodo,
        omniworkboard.ColumnInProgress,
        omniworkboard.ColumnDone,
    },
})

Storage Integration

The skill implements compiled.StorageAware for automatic storage injection:

import (
    "github.com/plexusone/omnistorage-core/kvs"
    "github.com/plexusone/omnistorage-core/sqlite"
)

// Create storage
backend, _ := sqlite.Open("agent.db")
store := kvs.New(backend)

// Agent with storage
a, err := agent.New(config,
    agent.WithStorage(store),
    agent.WithCompiledSkill(omniworkboard.NewSkill()),
)
// Skill automatically receives storage

Conversation Examples

Project Setup

User: Let's set up a sprint board. Create cards for:
      1. Design API schema (high priority)
      2. Implement endpoints
      3. Write tests
      4. Deploy to staging

Agent: I'll create those cards for you.

[creates 4 cards]

Created 4 cards in Backlog:
- Design API schema (High) - abc123
- Implement endpoints (Normal) - def456
- Write tests (Normal) - ghi789
- Deploy to staging (Normal) - jkl012

User: The endpoints depend on the design, tests depend on endpoints,
      and deploy depends on tests.

Agent: [adds 3 dependencies]

Dependencies set:
- "Implement endpoints" depends on "Design API schema"
- "Write tests" depends on "Implement endpoints"
- "Deploy to staging" depends on "Write tests"

Daily Standup

User: What's my board status?

Agent: [calls list_cards]

Here's your board status:

Done (2):
- Design API schema (High)
- Implement endpoints (Normal)

In Progress (1):
- Write tests (Normal)

Blocked (1):
- Deploy to staging - blocked by "Write tests"

Backlog (0): empty

Moving Through Workflow

User: I finished writing tests, move it to review

Agent: [calls move_card with column="review"]

Moved "Write tests" to Review.

Note: "Deploy to staging" is now unblocked and ready to start.

Error Handling

The skill handles common errors gracefully:

User: Move card xyz123 to done

Agent: I couldn't find a card with ID "xyz123". Would you like me to
       list all cards so you can identify the correct one?
User: Move the deploy card to done

Agent: I can't move "Deploy to staging" to Done because it's blocked
       by "Write tests" which is still in Review. Would you like me
       to move "Write tests" to Done first?

Best Practices

Clear Task Descriptions

User: Create a card for "login"  # Too vague

User: Create a high priority card for "Implement OAuth2 login with
      Google and GitHub providers" with labels "auth" and "feature"

Use Dependencies

User: Make sure the testing card can't be done until the
      implementation is complete

Agent: [adds dependency]
       "Testing" now depends on "Implementation"

Regular Updates

User: What's blocking progress?

Agent: [analyzes dependencies]
       2 cards are blocked:
       - "Deployment" is blocked by "Testing" (in Review)
       - "Documentation" is blocked by "API Design" (in Progress)

See Also