Customizing Tasks


This docs site is currently under construction although this github README below should suffice for now.


This guide covers how to define and customize tasks for agents in Julep.

Creating a Basic Task

Here's an example of creating a simple daily motivation task:

curl -X POST "https://api.julep.ai/api/agents/YOUR_AGENT_ID/tasks" \
     -H "Authorization: Bearer $JULEP_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
           "name": "Daily Motivation",
           "description": "Provides daily motivation based on user preferences",
           "input_schema": {
             "type": "object",
             "properties": {
               "about_user": {"type": "string"},
               "topics": {"type": "array", "items": {"type": "string"}},
               "user_email": {"type": "string", "format": "email"}
             },
             "required": ["about_user", "topics", "user_email"]
           },
           "main": [
             {
               "evaluate": {
                 "chosen_topic": "_[\"topics\"][randint(len(_[\"topics\"]))]"
               }
             },
             {
               "prompt": "You are a motivational coach and you are coaching someone who is {{inputs[0][\"about_user\"]}}. Think of the challenges they might be facing on the {{_[\"chosen_topic\"]}} topic and what to do about them. Write down your answer as a bulleted list."
             },
             {
               "prompt": "Write a short motivational poem about {{_[\"choices\"][0].content}}"
             },
             {
               "tool": {
                 "name": "send_email",
                 "arguments": {
                   "subject": "\"Daily Motivation\"",
                   "content": "_[\"choices\"][0].content",
                   "recipient": "inputs[\"user_email\"]"
                 }
               }
             },
             {
               "sleep": 86400
             },
             {
               "workflow": "main",
               "arguments": "inputs[0]"
             }
           ]
         }'

Adding Conditional Logic

You can add conditional logic to your tasks using the if-else step:

{
  "if": "inputs['user_mood'] == 'positive'",
  "then": {
    "prompt": "Great! Let's build on that positive energy. {{inputs['chosen_topic']}}"
  },
  "else": {
    "prompt": "I understand you're feeling down. Let's work on improving your mood through {{inputs['chosen_topic']}}."
  }
}

Using Parallel Processing

For tasks that can benefit from parallel processing, use the parallel step:

{
  "parallel": [
    {
      "prompt": "Generate a motivational quote about {{inputs['chosen_topic']}}."
    },
    {
      "tool": {
        "name": "get_weather",
        "arguments": {
          "location": "inputs['user_location']"
        }
      }
    }
  ]
}

Next Steps

Last updated