Skip to content

agentsea/taskara

Repository files navigation


Taskara

Task management for AI agents
Explore the docs »

View Demo · Report Bug · Request Feature


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="[email protected]"
)

Assign the task to an agent

task.assigned_to = "[email protected]"

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

from mllm import RoleThread, RoleMessage

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 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

Community

Come join us on Discord.

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