<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arka Bhattacharya</title>
    <description>The latest articles on DEV Community by Arka Bhattacharya (@arka2518).</description>
    <link>https://dev.to/arka2518</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4093796%2F8b26f1bb-33d7-4557-841d-5504eac36a29.jpg</url>
      <title>DEV Community: Arka Bhattacharya</title>
      <link>https://dev.to/arka2518</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arka2518"/>
    <language>en</language>
    <item>
      <title>TaskRouter</title>
      <dc:creator>Arka Bhattacharya</dc:creator>
      <pubDate>Thu, 17 Sep 2026 17:25:44 +0000</pubDate>
      <link>https://dev.to/arka2518/taskrouter-m0p</link>
      <guid>https://dev.to/arka2518/taskrouter-m0p</guid>
      <description>&lt;p&gt;Two API keys, three AI providers. One shared interface across all of them. Here's how I built a retry-safe function that doesn't care which model is on the other end.&lt;/p&gt;

&lt;p&gt;When I first used the Gemini API key, handling its responses and errors, it gave me a thought, "How about we use three different APIs from three different models the same way."&lt;br&gt;
And as it went on, it developed into a project that is &lt;strong&gt;TaskRouter&lt;/strong&gt;.&lt;br&gt;
This is a terminal-based multi-provider AI router that uses 3 providers: Claude for coding, ChatGPT for discussion and SarvamAI for general chat. Now TaskRouter manually asks for the task type, and on that basis, you can start your work.&lt;br&gt;
While working on this, I got to learn how to route models according to the task, handle shared error and retry behaviour and to create a config.py file to regulate model IDs, route-specific token limits, retry budgets, backoff values, and request timeout settings so that each model works efficiently. For the API key, I use SarvamAI and Openrouter API, which provides for both Claude and ChatGPT.&lt;br&gt;
I see this as my first step to manage multiple agents according to assigned tasks. I will keep trying to make this idea more efficient and effective enough to integrate into scalable projects in future.&lt;/p&gt;

&lt;p&gt;I encourage everyone to try and test this project in their terminals. It has been provided in the README of the project, and if any error or issue is encountered during the setup, feel free to reach out to me in the comments.&lt;br&gt;
Repo Link: &lt;a href="https://github.com/arka2518/TaskRouter" rel="noopener noreferrer"&gt;https://github.com/arka2518/TaskRouter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>cli</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
