<?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: Samuel Obinna Chimdi </title>
    <description>The latest articles on DEV Community by Samuel Obinna Chimdi  (@samuelobinnachimdi).</description>
    <link>https://dev.to/samuelobinnachimdi</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1338681%2F0b9b3988-8207-4d69-9a4c-1decce468473.png</url>
      <title>DEV Community: Samuel Obinna Chimdi </title>
      <link>https://dev.to/samuelobinnachimdi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/samuelobinnachimdi"/>
    <language>en</language>
    <item>
      <title>🚀 Introducing ChatATP: The Universal Operating System for AI Agents</title>
      <dc:creator>Samuel Obinna Chimdi </dc:creator>
      <pubDate>Fri, 14 Nov 2025 14:35:29 +0000</pubDate>
      <link>https://dev.to/samuelobinnachimdi/introducing-chatatp-the-universal-operating-system-for-ai-agents-5gpc</link>
      <guid>https://dev.to/samuelobinnachimdi/introducing-chatatp-the-universal-operating-system-for-ai-agents-5gpc</guid>
      <description>&lt;h1&gt;
  
  
  🚀 Introducing ChatATP: The Universal Operating System for AI Agents
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Stop Talking to Your Apps. Start Acting with Them.
&lt;/h2&gt;

&lt;p&gt;The current state of AI agents is frustrating. On one side, we have incredible LLMs like GPT-4, Claude, and Mistral, but they're often trapped in a chat box — they can talk about your business, but they can't actually act on it. On the other side, a handful of closed platforms offer limited integrations, locking users into one model, one set of tools, and one way of working.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Agent Economy is fundamentally fragmented and siloed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We built ChatATP to change this. We are building the Operating System for AI Agents — a two-sided, open platform powered by the Agent Tool Protocol (ATP) that unifies the user experience and unleashes developer velocity.&lt;/p&gt;




&lt;h2&gt;
  
  
  🙋‍♀️ For the User: The Ultimate Action-Oriented Assistant
&lt;/h2&gt;

&lt;p&gt;For users, ChatATP is a general-purpose AI assistant that connects to all your apps, services, and workflows, allowing your AI to move beyond chat and truly get things done.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqnba6d62qef8p5ivw22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqnba6d62qef8p5ivw22.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose Your Brain, Not Ours (Model-Agnostic)
&lt;/h3&gt;

&lt;p&gt;Uhnlike platforms tied to a single tech giant, ChatATP is model-agnostic and totally neutral. You are free to choose the LLM that works best for your task and budget — whether that's OpenAI, Anthropic, Mistral, Groq, HuggingFace, or OpenRouter.&lt;/p&gt;

&lt;p&gt;We abstract the model layer, ensuring you always get the best combination of performance and price.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3i0ebkj32y6y1s75wn9s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3i0ebkj32y6y1s75wn9s.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose LLM API Provider (AI Labs like OpenAI, Anthropic, Mistral etc. or Inference Providers like OpenRouter, Groq, HuggingFace etc.)&lt;/li&gt;
&lt;li&gt;Setup API Key&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. The App Store for AI Agents
&lt;/h3&gt;

&lt;p&gt;Your agent's intelligence is defined by its tools. Through the ToolKit Marketplace, you can install pre-built ToolKits and Integrations (like HubSpot, Slack, Notion, and web automation tools) to extend your agent's capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3scykmdp3i37kioo43o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3scykmdp3i37kioo43o.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-World Action:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Your ChatATP agent can now genuinely fetch leads, update CRM data, scrape websites, and execute complex tasks across your connected services in real-time. It doesn't just suggest actions — it executes them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We have over &lt;strong&gt;750+ early users&lt;/strong&gt; already testing agents that move mountains, not just paragraphs.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  👨‍💻 For the Developer: Skip the Plumbing, Build the Logic
&lt;/h2&gt;

&lt;p&gt;The future of AI agents relies on developers being able to build powerful, interoperable tools quickly. The ChatATP Developer Platform provides the missing infrastructure layer that competitors are either ignoring or forcing developers to rebuild in-house.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrv6vsmb53kg1fdd3m9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrv6vsmb53kg1fdd3m9f.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  1. Frictionless Tool-Building
&lt;/h3&gt;

&lt;p&gt;If you want your agent to connect to a real-world API, you traditionally waste days on boilerplate: handling OAuth2 flows, manually generating dynamic JSON schemas, and building complex execution orchestration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The ChatATP Developer Platform removes all that friction:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Secure Authentication Managed:&lt;/strong&gt; We securely handle the entire OAuth2 flow and token management, saving you hundreds of lines of code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F20rn0j0lwt9na3em2t9x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F20rn0j0lwt9na3em2t9x.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Schema Generation:&lt;/strong&gt; Our system automatically generates the necessary tool schemas (for OpenAI, Anthropic, and others).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestration Handled:&lt;/strong&gt; We manage the complex multi-step agent workflows and execution logic via our proprietary Agent Tool Protocol (ATP) SDK.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvarzftrc7j610jxj77jl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvarzftrc7j610jxj77jl.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  2. True Distribution and Network Effects
&lt;/h3&gt;

&lt;p&gt;We solve the developer pain not just of building, but of distribution. By owning the ToolKit Marketplace, we create a simple path to market:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmw5ajem5gjhsfvxip98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmw5ajem5gjhsfvxip98.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discoverability Solved:&lt;/strong&gt; Developers build a ToolKit, publish it to our Marketplace, and it instantly becomes discoverable by all ChatATP users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interoperability is Key:&lt;/strong&gt; Any developer can build a specialized agent that utilizes your published ToolKit, creating a powerful network effect where the platform's value grows exponentially with every single addition.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why ChatATP Wins the Infrastructure Layer
&lt;/h2&gt;

&lt;p&gt;Our competitors are either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Closed ecosystems (like proprietary chat models that limit your tools)&lt;/li&gt;
&lt;li&gt;Fragmented point solutions (tools that only solve one part of the integration puzzle)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Our Moat:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The future of the agent economy will be open, model-agnostic, and driven by developer network effects.&lt;/p&gt;

&lt;p&gt;ChatATP is not competing at the chat interface level.&lt;br&gt;&lt;br&gt;
We are building the foundational infrastructure powering the entire agent economy — &lt;strong&gt;the operating system where users run agents, and developers build the ToolKits that enable them.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Current Progress
&lt;/h2&gt;

&lt;p&gt;We have already built:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A live Developer Platform&lt;/li&gt;
&lt;li&gt;A ToolKit Marketplace&lt;/li&gt;
&lt;li&gt;Over &lt;strong&gt;157 Total Toolkit Users&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Over &lt;strong&gt;286 Total Toolkit Installs&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Ready to build or use an agent that actually acts?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Platform: &lt;a href="https://chat-atp.com" rel="noopener noreferrer"&gt;https://chat-atp.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs: &lt;a href="https://docs.chat-atp.com" rel="noopener noreferrer"&gt;https://docs.chat-atp.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Developer Platform: &lt;a href="https://developers.chat-atp.com" rel="noopener noreferrer"&gt;https://developers.chat-atp.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>AGENT TOOL PROTOCOL(ATP) : EMPOWERING LLMs WITH CAPABILITIES</title>
      <dc:creator>Samuel Obinna Chimdi </dc:creator>
      <pubDate>Fri, 11 Jul 2025 15:50:12 +0000</pubDate>
      <link>https://dev.to/samuelobinnachimdi/agent-tool-protocolatp-empowering-llms-with-capabilities-45h2</link>
      <guid>https://dev.to/samuelobinnachimdi/agent-tool-protocolatp-empowering-llms-with-capabilities-45h2</guid>
      <description>&lt;h1&gt;
  
  
  🔧 Agent Tool Protocol (ATP): Empowering LLMs with Real-World Capabilities Using ToolKitClient
&lt;/h1&gt;

&lt;p&gt;Large Language Models (LLMs) such as GPT-4, Claude, and Llama have revolutionized natural language understanding and generation. They can write essays, answer questions, and even create code. However, despite their impressive language abilities, these models are inherently &lt;strong&gt;passive&lt;/strong&gt; — they generate text based on patterns learned during training but cannot directly interact with external systems or perform actions in the real world.&lt;/p&gt;

&lt;p&gt;To unlock the true potential of LLMs, we need to empower them with &lt;strong&gt;capabilities&lt;/strong&gt; — the ability to call APIs, run functions, query databases, or control software. This transforms them from static text generators into &lt;strong&gt;agentic systems&lt;/strong&gt; that can reason, plan, and act autonomously.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Agent Tool Protocol (ATP)?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent Tool Protocol (ATP)&lt;/strong&gt; is an open protocol and SDK designed to bridge the gap between LLMs and external tools. It provides a &lt;strong&gt;standardized framework&lt;/strong&gt; that allows AI agents powered by LLMs to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discover and understand available tools
&lt;/li&gt;
&lt;li&gt;Authenticate securely with third-party services (e.g., via OAuth2)
&lt;/li&gt;
&lt;li&gt;Invoke tools remotely in real-time
&lt;/li&gt;
&lt;li&gt;Receive and process responses dynamically
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By using ATP, developers can expose their own Python functions as &lt;strong&gt;remote tools&lt;/strong&gt; that any ATP-compatible agent can call. This enables LLMs to extend their reasoning with real-world actions, such as creating CRM records, sending emails, or fetching live data.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Does ATP Matter?
&lt;/h2&gt;

&lt;p&gt;While LLMs excel at language tasks, many applications require &lt;strong&gt;actionable intelligence&lt;/strong&gt; — the ability to perform tasks beyond text generation. Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automating customer support workflows
&lt;/li&gt;
&lt;li&gt;Managing business data in SaaS platforms like HubSpot or Salesforce
&lt;/li&gt;
&lt;li&gt;Integrating with IoT devices or robotics
&lt;/li&gt;
&lt;li&gt;Building no-code AI assistants that interact with multiple APIs
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ATP provides the &lt;strong&gt;control layer&lt;/strong&gt; that makes these scenarios possible by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Abstracting tool invocation details from the agent
&lt;/li&gt;
&lt;li&gt;Handling authentication flows securely and transparently
&lt;/li&gt;
&lt;li&gt;Supporting real-time, bi-directional communication via WebSockets
&lt;/li&gt;
&lt;li&gt;Enabling modular, reusable toolkits for rapid development
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Introducing Agent Tool Protocol(ATP): The ATP SDK Core
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;&lt;code&gt;ToolkitClient&lt;/code&gt;&lt;/strong&gt; is a Python SDK class that acts as the &lt;strong&gt;server-side agent&lt;/strong&gt; for your tools. It allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Register Python functions as callable tools with metadata
&lt;/li&gt;
&lt;li&gt;Attach OAuth2 credentials and manage authentication
&lt;/li&gt;
&lt;li&gt;Listen for incoming tool invocation requests via WebSocket
&lt;/li&gt;
&lt;li&gt;Send back responses to the requesting agent
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This SDK removes the heavy lifting of building a secure, real-time tool server and lets you focus on writing your business logic.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started with ToolKitClient
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;Begin by installing the ATP SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;AgentToolProtocol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Registering Your First Tool
&lt;/h3&gt;

&lt;p&gt;Let’s create a simple tool that returns a greeting message. This function will be exposed to ATP agents as a callable tool.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;atp_sdk.clients&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ToolKitClient&lt;/span&gt;

&lt;span class="c1"&gt;# Initialize the client with your ATP API key and app name
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ToolKitClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_ATP_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;app_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my_app&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@client.register_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;function_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hello_world&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;required_params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Returns a personalized greeting.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;hello_world&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;World&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello, &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Start the client to listen for tool requests
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once running, any ATP-compatible agent can invoke &lt;code&gt;hello_world&lt;/code&gt; by passing the &lt;code&gt;name&lt;/code&gt; parameter and receive a greeting in response.&lt;/p&gt;




&lt;h2&gt;
  
  
  Deep Dive: Registering Tools with OAuth2 Authentication
&lt;/h2&gt;

&lt;p&gt;Many useful tools require secure authentication, especially when interacting with third-party APIs. ATP supports OAuth2 flows natively, enabling seamless integration.&lt;/p&gt;

&lt;p&gt;Here’s an example of registering a tool that creates a company record in HubSpot:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="nd"&gt;@client.register_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;function_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;create_company&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;domain&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;industry&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;required_params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;domain&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;industry&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Creates a company record in HubSpot.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;auth_provider&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hubspot&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;auth_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;OAuth2&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;auth_with&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;access_token&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_company&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;access_token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;auth_token&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.hubapi.com/crm/v3/objects/companies&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;access_token&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;domain&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;domain&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;industry&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;industry&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How OAuth2 Works with ATP
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When a user connects their HubSpot account via an ATP-compatible agent interface (like ChatATP), ATP handles the OAuth2 authorization flow.
&lt;/li&gt;
&lt;li&gt;The resulting &lt;code&gt;access_token&lt;/code&gt; is securely passed to your tool function via the &lt;code&gt;auth_token&lt;/code&gt; parameter.
&lt;/li&gt;
&lt;li&gt;Your function uses this token to authenticate API requests.
&lt;/li&gt;
&lt;li&gt;This flow ensures your tools can safely access user data without manual token management.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Anatomy of an ATP Tool
&lt;/h2&gt;

&lt;p&gt;When you register a function as a tool, you provide:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;function_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unique identifier for the tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;params&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List of all accepted input parameters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;required_params&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Subset of &lt;code&gt;params&lt;/code&gt; that must be provided&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Human-readable explanation of the tool’s purpose&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;auth_provider&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(Optional) OAuth2 provider name, e.g., "hubspot"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;auth_type&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(Optional) Authentication type, e.g., "OAuth2"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;auth_with&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(Optional) Token type, e.g., "access_token"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Your tool function should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accept &lt;code&gt;**kwargs&lt;/code&gt; to handle dynamic parameters
&lt;/li&gt;
&lt;li&gt;Return data in a serializable format (dict, list, string, etc.)
&lt;/li&gt;
&lt;li&gt;Handle errors gracefully and return meaningful messages
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Real-Time Tool Execution Flow
&lt;/h2&gt;

&lt;p&gt;When an ATP agent invokes a tool, it sends a WebSocket message structured like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"message_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"atp_tool_request"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"payload"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"request_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"unique-request-id"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tool_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"create_company"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"params"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Acme Corp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"domain"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"acme.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"industry"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Technology"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"auth_token"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user-access-token"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;ToolKitClient&lt;/code&gt; listens for such events, runs the corresponding registered function with the provided parameters and token, then sends the response back over the WebSocket connection.&lt;/p&gt;

&lt;p&gt;This &lt;strong&gt;real-time, event-driven architecture&lt;/strong&gt; enables fluid interaction between agents and tools, making it possible to build complex, multi-step AI workflows.&lt;/p&gt;




&lt;h2&gt;
  
  
  Managing the ToolKitClient Lifecycle
&lt;/h2&gt;

&lt;p&gt;To run your tool server continuously, use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
        &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;KeyboardInterrupt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opens a persistent WebSocket connection to ATP servers
&lt;/li&gt;
&lt;li&gt;Automatically reconnects if the connection drops
&lt;/li&gt;
&lt;li&gt;Dispatches incoming tool calls to registered functions
&lt;/li&gt;
&lt;li&gt;Stops gracefully on user interrupt (Ctrl+C)
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Advanced Usage and Tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multiple Tools&lt;/strong&gt;: Register as many tools as you want by stacking &lt;code&gt;@register_tool&lt;/code&gt; decorators or defining multiple functions.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private vs Public Tools&lt;/strong&gt;: Tools can be private for internal use or published to the ATP ecosystem for public agents.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Backend&lt;/strong&gt;: Override the default ATP server URL using &lt;code&gt;base_url&lt;/code&gt; parameter to connect to self-hosted or staging environments.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling&lt;/strong&gt;: Implement try-except blocks inside your tool functions to catch and report errors clearly.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logging&lt;/strong&gt;: Add logging for debugging and monitoring tool usage.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why Developers and Businesses Should Care
&lt;/h2&gt;

&lt;p&gt;ATP is a game-changer for anyone building AI-powered applications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Custom GPTs and Claude Agents&lt;/strong&gt;: Extend your LLMs with domain-specific tools.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No-Code AI Builders&lt;/strong&gt;: Empower users to create AI workflows without coding.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SaaS Integration&lt;/strong&gt;: Connect AI agents securely to your business’s APIs.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internal Automation&lt;/strong&gt;: Build AI assistants that automate repetitive tasks with secure API access.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By giving LLMs the ability to &lt;strong&gt;act&lt;/strong&gt;, not just talk, ATP enables smarter, more useful AI.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next for ATP?
&lt;/h2&gt;

&lt;p&gt;The ATP ecosystem is rapidly evolving with exciting features on the horizon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;ToolKit Store&lt;/strong&gt;: Discover and install pre-built tools easily.
&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Expanded OAuth2 Support&lt;/strong&gt;: Integration with major platforms like Google, Microsoft, and Salesforce.
&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;ToolKitCollection Sync&lt;/strong&gt;: Keep your tools synchronized across devices and environments.
&lt;/li&gt;
&lt;li&gt;🔜 &lt;strong&gt;Analytics &amp;amp; Rate Limiting&lt;/strong&gt;: Monitor usage and enforce quotas.
&lt;/li&gt;
&lt;li&gt;🔜 &lt;strong&gt;CLI &amp;amp; Web Builder&lt;/strong&gt;: Simplify tool creation with command-line and graphical interfaces.
&lt;/li&gt;
&lt;li&gt;🔜 &lt;strong&gt;Custom Access Control&lt;/strong&gt;: Define fine-grained permissions and deployment environments.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Join the ATP Community
&lt;/h2&gt;

&lt;p&gt;ATP is open for early adopters and developers passionate about building the future of agentic AI. If you want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create your own ToolKits
&lt;/li&gt;
&lt;li&gt;Build AI agents with real-world capabilities
&lt;/li&gt;
&lt;li&gt;Explore protocol-level agent infrastructure
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Connect with me on &lt;a href="https://twitter.com/samuelobinnachi" rel="noopener noreferrer"&gt;X (Twitter)&lt;/a&gt; or email &lt;code&gt;sammyfirst6@gmail.com&lt;/code&gt;.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;Let’s move beyond static language models and build AI that can &lt;strong&gt;think, act, and solve problems&lt;/strong&gt; — securely, modularly, and at scale.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;🔗 &lt;strong&gt;ChatATP&lt;/strong&gt; – &lt;a href="https://chatatp.com" rel="noopener noreferrer"&gt;https://chatatp.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🧑‍💻 &lt;strong&gt;Docs coming soon&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
💬 Built by &lt;a href="https://twitter.com/samuelobinnachi" rel="noopener noreferrer"&gt;@samuelobinnachimdi&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;#AI #Python #OpenAI #LLM #Agents #ATP #ChatATP #OAuth2 #SDK #ToolKits&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
