<?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: Derek</title>
    <description>The latest articles on DEV Community by Derek (@derekdd).</description>
    <link>https://dev.to/derekdd</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%2F3772720%2Feb88c39d-a765-4123-a87d-26f0a19b61ef.png</url>
      <title>DEV Community: Derek</title>
      <link>https://dev.to/derekdd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/derekdd"/>
    <language>en</language>
    <item>
      <title>Tutorial Codex/Claude + Craftsman Agent Skills Becomes the AI 3D Toy IP Generator Workstation Turn Your IPs to Digital Assets and Finished Products</title>
      <dc:creator>Derek</dc:creator>
      <pubDate>Fri, 28 Aug 2026 03:22:34 +0000</pubDate>
      <link>https://dev.to/derekdd/tutorial-codexclaude-craftsman-agent-skills-becomes-the-ai-3d-toy-ip-generator-workstation-turn-5bo1</link>
      <guid>https://dev.to/derekdd/tutorial-codexclaude-craftsman-agent-skills-becomes-the-ai-3d-toy-ip-generator-workstation-turn-5bo1</guid>
      <description>&lt;p&gt;Hi Dev community, I this blog I will introduce how to use your local Desktop Agent and Craftsman Agent API/Skills as a unified AI 3D Toy IP Generator Workstation. You can turn your creative ideas or IP into ready to produce Toys (AI Figurine,Plush Stuffed Toys), multiview sheets, downloadable 3D models and more.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsq72szqv6j179r6xnfp6.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsq72szqv6j179r6xnfp6.png" alt="3D Model View" width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Requirements:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Your Local Agents Codex/Claude/Gemini CLIs/Workbuddy&lt;/li&gt;
&lt;li&gt;Craftsman Agent Skills,  Especially the toy_generator_design_draft,toy_generator_task_create,toy_generator_task_poll&lt;/li&gt;
&lt;li&gt;OneKey Agent Gateway Access Key: &lt;code&gt;DEEPNLP_ONEKEY_ROUTER_ACCESS&lt;/code&gt; Required to use the SOTA Image Generation (Nano Banana/Image Gen ) and 3D models APIs (Tripo/Meshy) in the toy design agentic workflow which can be access using OneKey MCP CLI or APIs.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  And you can generate:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Multiview sheet of your IPs.&lt;/li&gt;
&lt;li&gt;3D models(.obj,.glb) ready for 3D printing and Plush Toy Manufacturing on Craftsman Agent Store, which is the manufacturing on Demand platform to connect to 1000+ craftsman workshop and turn your design to finished products and delivery.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Online Web: &lt;br&gt;
&lt;a href="https://craftsman-agent.aiagenta2z.com/app/toy-generator" rel="noopener noreferrer"&gt;AI Toy Generator Craftsman Agent Web&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/AI-Hub-Admin/Craftsman-Agent" rel="noopener noreferrer"&gt;Craftsman Agent Skills GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a gallery of demo generated Plush Toy Steve in Minecraft, PVC Materials AI Figurine Steve/Alex/Kulipa, etc.&lt;/p&gt;
&lt;h4&gt;
  
  
  Example 1, Minecraft IPs
&lt;/h4&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsoobhbnslxgl3kua8z57.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsoobhbnslxgl3kua8z57.png" alt="Minecraft 3D Model View" width="800" height="962"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F399mi2z5qi2rjgwjrbts.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F399mi2z5qi2rjgwjrbts.png" alt="Minecraft 3D Model View" width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Example 2, Swimming Boys and Girls
&lt;/h4&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F105cjm9gyc6zp87p7dhc.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F105cjm9gyc6zp87p7dhc.png" alt="Swimming Boys 3D Model View Craftsman Agent" width="800" height="1229"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftzih47zzfo6vxq35wpcc.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftzih47zzfo6vxq35wpcc.png" alt="Swimming Boys 3D Model View Craftsman Agent" width="800" height="1229"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi2d80j39efsjvxlrwtn7.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi2d80j39efsjvxlrwtn7.png" alt="Swimming Girls 3D Model View Craftsman Agent" width="800" height="1229"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fis2wrabq02ipk8m06dgu.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fis2wrabq02ipk8m06dgu.png" alt="Swimming Girls 3D Model View Craftsman Agent" width="800" height="1229"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Example 3, Cult Movie Niulai
&lt;/h4&gt;

&lt;p&gt;This is the share workstation online view of Niulai and 3D models: &lt;br&gt;
&lt;a href="https://craftsman-agent.aiagenta2z.com/app/sessions/share/296aaac1-14f5-4c85-989e-cd69e917a5eb" rel="noopener noreferrer"&gt;https://craftsman-agent.aiagenta2z.com/app/sessions/share/296aaac1-14f5-4c85-989e-cd69e917a5eb&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flhm54c9qojvepyvwxfzz.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flhm54c9qojvepyvwxfzz.png" alt="Movie Niulai 3D Model View" width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;p&gt;The typical workflow of IP design and 3D/Toy Generation is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Text/Image Prompt]
        -&amp;gt;
[Toy Design Draft / Multi-View Sheet]
        -&amp;gt;
[Create 3D Generation Task: Task ID]
        -&amp;gt;
[Poll Task Results Progress using Task ID]
        -&amp;gt;
[3D Toy Model + Preview]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Setup Agent Skills Craftsman Agent&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In your local project folder, setup the skills markdown file by running below commands to download skills from GitHub or Clawhub&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx skills add ai-hub-admin/craftsman-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;openclaw skills install @ai-hub-admin/toy-generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can download the toy-generator and more specific usage from the hub. The raw skills data can be found in GitHub Repo&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/AI-Hub-Admin/Craftsman-Agent" rel="noopener noreferrer"&gt;https://github.com/AI-Hub-Admin/Craftsman-Agent&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Running Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 Generate Toy 3D Model MultiView Sheets Images
&lt;/h3&gt;

&lt;p&gt;Example: I am using the Niulai (A Cow) Cult Movie for low resolution animation screenshots of videos images are reference.&lt;br&gt;
Niulai Movie Cow Picture : &lt;a href="https://craftsman-agent.aiagenta2z.com/static/ogino-chihiro/50923d3d-8222-45ce-989e-4c41ec15e3ab/3fd95298d85b42389415cd8d5f8227cd.jpg" rel="noopener noreferrer"&gt;https://craftsman-agent.aiagenta2z.com/static/ogino-chihiro/50923d3d-8222-45ce-989e-4c41ec15e3ab/3fd95298d85b42389415cd8d5f8227cd.jpg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can be specific about which kind of toys you would like, such as the Plush Stuffed Animal Toys or AI Figurine (PVC materials), 3D Printing Materials, etc.&lt;br&gt;
You can also define the texture of the toys to make it better&lt;/p&gt;

&lt;p&gt;Setup the Env Variables before Running the Skills APIs, Otherwise you will an Key not found error! You can get the onekey access variables and demo credits at &lt;code&gt;https://deepnlp.org/workspace/keys&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export DEEPNLP_ONEKEY_ROUTER_ACCESS=your_access_key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the final Prompt&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Please follow the reference pictures of the Movie Niulai of a standing Cow. Please Output a multiview sheets images of stuffed toy. 
Background should be white. Facial Expression should resemble the main face. Texture of the cow should be exact like the main picture, coarse grain texture.
Use the raw character images as references: https://craftsman-agent.aiagenta2z.com/static/ogino-chihiro/50923d3d-8222-45ce-989e-4c41ec15e3ab/3fd95298d85b42389415cd8d5f8227cd.jpg

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Output of the MultiView Sheets will give the Front View, Side View and Back View of the toys when the skills runs &lt;/p&gt;

&lt;h2&gt;
  
  
  Multi View Sheets of Craftsman Agent Niulai
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhn12wswbv29s3hpl3wtz.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhn12wswbv29s3hpl3wtz.png" alt=" " width="800" height="1072"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This file will be ready to send to Manufacturing Supplier to make it out and the factory will print out the design, get modules of plush materials and make Demo Toys!&lt;br&gt;
Just upload the generated images to marketplace, and make temperary order to find Craftsman and your order will be matched, &lt;a href="https://craftsman-agent.aiagenta2z.com/marketplace" rel="noopener noreferrer"&gt;https://craftsman-agent.aiagenta2z.com/marketplace&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2.2 Generate 3D Models for 3D Printing or AI Figurine
&lt;/h3&gt;

&lt;p&gt;If you want to use 3D Printing to print out the model and paint. You can try below prompts and output a 3D models calls&lt;br&gt;
the default SOTA 3D generation APIs (Tripo/Meshy/etc). Note that the 3D generate have 3 models (image-to-model, text-to-model, multi-view sheets to model)&lt;/p&gt;

&lt;p&gt;In this blog we use the outputs of previous step 2.1 MultiView Sheets and produce a more accurate models.  Alternatively, you can also &lt;br&gt;
use just single images to generate (But the back and side e.g. the tail of the cow might be different than your expectations.)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use Craftsman Agent Toy Generator Skills to Generate 3D Models of Niulai. Use the previously generated MultiView Sheets Front, Side and Back Images to generate 3D Models ready to ship.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note that the 3D Generate Takes Minutes the process work like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Toy 3D Generation Start -&amp;gt; Generate Task ID task_id -&amp;gt; Polling on Task ID task_id progress to get final results

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Get the Task View From the First API Calls
&lt;/h3&gt;

&lt;p&gt;From the First API calls Get the 3D ShareURL Views&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&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;session_id&lt;/td&gt;
&lt;td&gt;The generation unique session id&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;share_url&lt;/td&gt;
&lt;td&gt;To View the Generated Images or Slides in Workspace&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The is a final generated gallery of 3D models Polling: &lt;br&gt;
&lt;a href="https://craftsman-agent.aiagenta2z.com/app/sessions/share/296aaac1-14f5-4c85-989e-cd69e917a5eb" rel="noopener noreferrer"&gt;https://craftsman-agent.aiagenta2z.com/app/sessions/share/296aaac1-14f5-4c85-989e-cd69e917a5eb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A Demo URL Path of Generated 3D models Ready to Download:  (Path are marked in Tutorial and live for a lifecycle)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://us-static.aiagenta2z.com/xxxxxxxx/user_name/session_id/tripo_pbr_model_990f448b-d8b8-491e-8d9f-284802aa985c.glb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And This is the final Toy generated 3d files ready to print/manufacture!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://craftsman-agent.aiagenta2z.com/app/sessions/share/296aaac1-14f5-4c85-989e-cd69e917a5eb" rel="noopener noreferrer"&gt;https://craftsman-agent.aiagenta2z.com/app/sessions/share/296aaac1-14f5-4c85-989e-cd69e917a5eb&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Related Reading and Usage
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://craftsman-agent.aiagenta2z.com/app/3d-generator" rel="noopener noreferrer"&gt;3D Generator&lt;/a&gt;&lt;br&gt;
&lt;a href="https://craftsman-agent.aiagenta2z.com/app/image-generator" rel="noopener noreferrer"&gt;Image Generator&lt;/a&gt;&lt;br&gt;
&lt;a href="https://craftsman-agent.aiagenta2z.com/app/toy-generator" rel="noopener noreferrer"&gt;Toy Generator&lt;/a&gt;&lt;br&gt;
&lt;a href="https://craftsman-agent.aiagenta2z.com/app/pindou-perler-beads" rel="noopener noreferrer"&gt;Perler Beads Pattern Generator&lt;/a&gt;&lt;br&gt;
&lt;a href="https://craftsman-agent.aiagenta2z.com/store" rel="noopener noreferrer"&gt;Craftsman Agent Store MOD Platform&lt;/a&gt;&lt;br&gt;
&lt;a href="https://craftsman-agent.aiagenta2z.com/marketplace" rel="noopener noreferrer"&gt;Craftsman Marketplace&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>LangChain x AI Agent A2Z Agent Deployment Tutorial on How to Bring Agent Live</title>
      <dc:creator>Derek</dc:creator>
      <pubDate>Tue, 17 Feb 2026 03:23:31 +0000</pubDate>
      <link>https://dev.to/derekdd/langchain-x-ai-agent-a2z-agent-deployment-tutorial-on-how-to-bring-agent-live-537d</link>
      <guid>https://dev.to/derekdd/langchain-x-ai-agent-a2z-agent-deployment-tutorial-on-how-to-bring-agent-live-537d</guid>
      <description>&lt;p&gt;&lt;strong&gt;Abstract&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Deploy the framework based AI Agent online is always difficult and in this blog, we will introduce&lt;br&gt;
how to deploy a langchain framework based AI agent and bring it from local to online service with an /chat endpoint. Tutorials covers two examples &lt;code&gt;content-builder-agent&lt;/code&gt; and &lt;code&gt;deep_research&lt;/code&gt; in LangChain DeepAgents Repo(github: langchain-ai/deepagents) and the &lt;a href="https://github.com/aiagenta2z/agent-mcp-deployment-templates" rel="noopener noreferrer"&gt;Agent Deployment templates GitHub&lt;/a&gt; can be found and easily deployed on A2Z Deployment &lt;a href="https://www.deepnlp.org/doc/agent_mcp_deployment" rel="noopener noreferrer"&gt;A2Z Deployment Doc&lt;/a&gt; and &lt;a href="https://deepnlp.org/workspace/deploy" rel="noopener noreferrer"&gt;A2Z Deployment Platform&lt;/a&gt;. After deployment, we can bring the agent live and get "/chat" endpoints.&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%2F0qm063pnxspjcxcxw1yu.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%2F0qm063pnxspjcxcxw1yu.png" alt=" " width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Tutorial
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Step 1. Convert the LangChain DeepAgents to LiveRunTime
&lt;/h4&gt;

&lt;p&gt;The agent class in their original implementation has two skills &lt;code&gt;blog-post&lt;/code&gt; and &lt;code&gt;social-media&lt;/code&gt; &lt;br&gt;
and is created using the create_deep_agent base function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def create_content_writer():
    """Create a content writer agent configured by filesystem files."""
    return create_deep_agent(
        memory=["./AGENTS.md"],           # Loaded by MemoryMiddleware
        skills=["./skills/"],             # Loaded by SkillsMiddleware
        tools=[generate_cover, generate_social_image],  # Image generation
        subagents=load_subagents(EXAMPLE_DIR / "subagents.yaml"),  # Custom helper
        backend=FilesystemBackend(root_dir=EXAMPLE_DIR),
    )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Step 2. Create a BaseLiveRuntime and implement an Async Generator
&lt;/h4&gt;

&lt;p&gt;The BaseLiveRuntime object produces a FastAPI app which expose and /chat endpoint that takes &lt;code&gt;messages&lt;/code&gt; format input.&lt;br&gt;
To make the agent online, the BaseLiveRuntime takes two variables, the first one is the agent object defined by various&lt;br&gt;
framework, such as LangChain/CrewAI/OpenAI Agent SDK/etc, the second one is an async generator which defined how the &lt;br&gt;
agent will run the input, such as agent.run, agent.invoke and customized function. &lt;/p&gt;
&lt;h5&gt;
  
  
  Define Runtime
&lt;/h5&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from ai_agent_marketplace.runtime.base import *

async def content_builder_stream_generator(
    agent: Any,
    user_query: str,
    **kwargs
) -&amp;gt; AsyncGenerator[str, None]:
    """
    """
    ## more

runtime = BaseLiveRuntime(
    agent=agent,
    stream_handler=content_builder_stream_generator
)

## Returned a FastAPI based app with /chat endpoint
app = runtime.app

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h5&gt;
  
  
  Create a Streaming Adapter
&lt;/h5&gt;

&lt;p&gt;Define an async generator that adapts your LangChain agent output into streaming chunks.&lt;/p&gt;

&lt;p&gt;The async generator takes in two parameters: &lt;code&gt;agent&lt;/code&gt; an customized agent object, &lt;code&gt;user_query&lt;/code&gt;&lt;br&gt;
that are parsed from the &lt;code&gt;messages&lt;/code&gt; object from the "\chat" endpoints.&lt;br&gt;
In the async generator, the agent calls &lt;code&gt;agent.invoke({"messages": messages})&lt;/code&gt; methods.&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;ai_agent_marketplace.runtime.base&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;typing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Any&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AsyncGenerator&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;uuid&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;deepagents_stream_generator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Any&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&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="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;AsyncGenerator&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    Universal async adapter for LangChain agent
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

    &lt;span class="c1"&gt;# Send initial streaming message
&lt;/span&gt;    &lt;span class="n"&gt;initial_content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Task Started and Research Take a Few Minutes&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;initial_chunk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nf"&gt;assembly_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;MESSAGE_TYPE_ASSISTANT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;OUTPUT_FORMAT_TEXT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;initial_content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;content_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;CONTENT_TYPE_MARKDOWN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;section&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;SECTION_ANSWER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;message_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;uuid4&lt;/span&gt;&lt;span class="p"&gt;()),&lt;/span&gt;
            &lt;span class="n"&gt;template&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;TEMPLATE_STREAMING_CONTENT_TYPE&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="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;initial_chunk&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;STREAMING_SEPARATOR_DEFAULT&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;asyncio&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;0&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="c1"&gt;# Call LangChain agent
&lt;/span&gt;        &lt;span class="n"&gt;messages&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;role&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;user&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&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;invoke&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

        &lt;span class="n"&gt;output_messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;output_messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;message_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;role&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;extract_message_content_langchain&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="n"&gt;output_chunk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="nf"&gt;assembly_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                    &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;MESSAGE_TYPE_ASSISTANT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;OUTPUT_FORMAT_TEXT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="n"&gt;content_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;CONTENT_TYPE_MARKDOWN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="n"&gt;section&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;SECTION_ANSWER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="n"&gt;message_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;message_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="n"&gt;template&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;TEMPLATE_STREAMING_CONTENT_TYPE&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="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;output_chunk&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;STREAMING_SEPARATOR_DEFAULT&lt;/span&gt;

    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({})&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;STREAMING_SEPARATOR_DEFAULT&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3. Deploy the Agent Live
&lt;/h3&gt;

&lt;p&gt;Go to the deployment workspace (DeepNLP AI Agent A2Z Deployment)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose Github Tab&lt;/li&gt;
&lt;li&gt;Public url: &lt;a href="https://github.com/aiagenta2z/agent-mcp-deployment-templates" rel="noopener noreferrer"&gt;https://github.com/aiagenta2z/agent-mcp-deployment-templates&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Entry Point Command shell
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uvicorn langchain_deepagents.deep_research.research_agent_server:app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt; Set the Environment Variables
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Set API keys&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GOOGLE_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;      &lt;span class="c"&gt;# For image generation&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;TAVILY_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;      &lt;span class="c"&gt;# For web search (optional)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 5. Click Deploy and You will get the URL&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%2Fraw.githubusercontent.com%2Faiagenta2z%2Fagent-mcp-deployment-templates%2Frefs%2Fheads%2Fmain%2Fdocs%2Flangchain_content_builder_deployment.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%2Fraw.githubusercontent.com%2Faiagenta2z%2Fagent-mcp-deployment-templates%2Frefs%2Fheads%2Fmain%2Fdocs%2Flangchain_content_builder_deployment.png" alt="Deployment of LangChain Content" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get the Product /chat POST URL :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://langchain-ai.aiagenta2z.com/content-builder-agent/chat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Architecture Summary
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LangChain Agent
        ↓
Streaming Adapter (Async Generator)
        ↓
BaseLiveRuntime
        ↓
FastAPI App (/chat)
        ↓
Streaming JSON Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4. Test Deployed Agent with curl
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Case 1: Simple Math
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"http://localhost:8000/chat"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"messages":[{"role":"user","content":"Calculate 1+1 result"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sample Streaming Output
&lt;/h3&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Task Started..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"section"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"answer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"message_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"670d3458-a539-406f-a786-1afc0f0fc201"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"text/markdown"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"template"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"streaming_content_type"&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Calculate 1+1 result"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"section"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"answer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"message_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"701be311-37e3-4ee1-9519-6d8e65b47f59"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"text/markdown"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"template"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"streaming_content_type"&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"1 + 1 = 2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"section"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"answer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"message_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"lc_run--019c55fe-4ed2-7da3-9e05-0a8758aa10cc-0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"text/markdown"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"template"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"streaming_content_type"&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;h3&gt;
  
  
  Case 2: Research Task
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"http://localhost:8000/chat"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"messages":[{"role":"user","content":"research context engineering approaches used to build AI agents"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sample Streaming Output (Truncated)
&lt;/h3&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Task Started..."&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Updated todo list ..."&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Updated file /research_request.md"&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Here is a comprehensive report on context engineering approaches..."&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 response is streamed incrementally as the agent reasons, calls tools, and produces final output.&lt;/p&gt;




&lt;h2&gt;
  
  
  Deploy And Test Examples
&lt;/h2&gt;

&lt;p&gt;You can also deploy publicly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://deepagents.aiagenta2z.com/deep_research/chat"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"messages":[{"role":"user","content":"Calculate 1+1 result"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Task Started..."&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Updated todo list ..."&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Updated file /research_request.md"&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="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Here is a comprehensive report on context engineering approaches..."&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;



</description>
      <category>agents</category>
      <category>ai</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
