taskara is a task management system for your agents.

The main goal of this system is to keep track of your agent tasks and logs of their execution. surfkit uses taskara under the hood to create and assign tasks, while the agents themselves use it to record the log and report completion or failure.

Installation

pip install taskara

Usage

Create a task:

from taskara import Task

task = Task(
    description="Search for the most common varieties of french ducks",
    owner_id="delores@agentsea.ai"
)

Assign the task to an agent:

task.assigned_to = "roko@agentsea.ai"

Post a message to the task thread:

task.post_message("assistant", "Getting started working on this")
task.status = "in progress"

Create a custom thread for the task:

task.create_thread("debug")
task.post_message("assistant", "I'll post debug messages to this thread", thread="debug")
task.post_message("assistant", 'My current screenshot', images=["b64img"], thread="debug")

Store prompts used to accomplish the task:

thread = RoleThread()
thread.post(role="system", msg="I am a helpful assistant")

response = RoleMessage(
    role="assistant",
    text="How can I help?"
)
task.store_prompt(thread, response, namespace="actions")

Store the result:

task.output = "The most common type of french duck is the Rouen"
task.status = "success"

Save the task:

task.save()

Tracker

taskara comes with a task tracker server which can be run on docker or kubernetes.

Install surfkit to create a tracker:

pip install surfkit

Create a tracker:

surfkit create tracker

List trackers:

surfkit list trackers

Get tracker logs:

surfkit logs tracker <name>

Create a task:

surfkit create task --description "Search for french ducks"

List tasks:

surfkit list tasks

Get a task:

surfkit get task <id>

Integrations

Taskara is integrated with:

  • SurfKit A platform for orchestrating AI agents.
  • MLLM A prompt management, routing, and schema validation library for multimodal LLMs.
  • Skillpacks A library to fine tune AI agents on tasks.
  • ThreadMem A thread management library for AI agents.

Backends

Thread and prompt storage can be backed by:

  • Sqlite
  • Postgresql

Sqlite will be used by default. To use postgres simply configure the env vars:

DB_TYPE=postgres
DB_NAME=tasks
DB_HOST=localhost
DB_USER=postgres
DB_PASS=abc123

Thread image storage by default will utilize the db, to configure bucket storage using GCS:

  • Create a bucket with fine grained permissions.
  • Create a GCP service account JSON with permissions to write to the bucket.
export THREAD_STORAGE_SA_JSON='{
  "type": "service_account",
  ...
}'
export THREAD_STORAGE_BUCKET=my-bucket