<?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>How to Design Customized Jewelry 2D Sketch and 3D Views Using Codex and Craftsman Agent Skills</title>
      <dc:creator>Derek</dc:creator>
      <pubDate>Tue, 29 Sep 2026 13:17:22 +0000</pubDate>
      <link>https://dev.to/derekdd/how-to-design-customized-jewelry-2d-sketch-and-3d-views-using-codex-and-craftsman-agent-skills-2doa</link>
      <guid>https://dev.to/derekdd/how-to-design-customized-jewelry-2d-sketch-and-3d-views-using-codex-and-craftsman-agent-skills-2doa</guid>
      <description>&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%2Fppha5t39tid0yqbtbyji.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%2Fppha5t39tid0yqbtbyji.png" alt=" " width="800" height="688"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;

&lt;p&gt;In this blog, we introduce how to upgrade your Codex or Claude into a sota jewelry design agent workstation with Craftsman Agent Skills. If you are planning a wedding, graduation ceremony, or a special gift for a beloved family member, you might consider customized jewelry designed with your preferred gemstones, metals, or even engraved initials. Customized jewelry is often more affordable than luxury-brand alternatives while offering a much higher level of personalization. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://craftsman-agent.aiagenta2z.com/app/jewelry-designer" rel="noopener noreferrer"&gt;Try Craftsman Agent Jewelry Designer Web&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The traditional jewelry design workflow typically involves hand-drawn sketches using specialized software, 3D modeling, and sending the resulting images or models to factories or workshops for production and price quoting. Customizing the design and negotiating between the human designer and customer can often take weeks to finalize.&lt;/p&gt;

&lt;p&gt;Now, an AI Agent jewelry designer can collaborate with customers to modify designs in seconds. The human designer only needs to validate the design draft, coordinate with the factory, and obtain a production quote. This can significantly reduce both the time and effort required to turn an idea into a finished piece of jewelry.&lt;/p&gt;

&lt;p&gt;Besides give AI Agent API access to Jewerly design, you can also use the online app by clicking and dragging to interactively complete the design or modify after Agents generation.&lt;/p&gt;

&lt;p&gt;Let's use &lt;code&gt;Ruby Rings&lt;/code&gt; and customized &lt;code&gt;Crystal Beaded Bracelets&lt;/code&gt; as examples to show you how to let your desktop agents to use these Skills/APIs, &lt;/p&gt;

&lt;p&gt;A typical custom jewelry design process involves several steps before the final design is sent to the factory.&lt;br&gt;
The outputs may include hand-drawn multi-view images—such as front, top, and perspective views—showing detailed gemstone cuts, gallery settings, chain shapes, dimensions, and other design details.&lt;br&gt;
The process may also include a 3D rendering of the jewelry, either as an interactive online model or as a local 3D model that can be further modified using various 3D design software.&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 of your Preferred Gems, Metals, Styles]
        -&amp;gt;
[Jewelry Design Hand-Drawn Design  / Multi-View Sheet]
        -&amp;gt;
[Jewelry Design 3D Generation Interactive Viewers]
        or
[Jewelry Design 3D Models]        
        -&amp;gt;
[Preview]
        -&amp;gt;
[Manufacturing on Demand Send Designs to Factory]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Tutorial
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 Setup you Environment
&lt;/h3&gt;

&lt;p&gt;Install the Craftsman Jewelry Designer skills&lt;br&gt;
&lt;/p&gt;

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

## skills
npx skills add ai-hub-admin/craftsman-agent ## Then choose the skills
npx skills add https://github.com/ai-hub-admin/craftsman-agent --skill jewelry-designer ## Install Single Skill


## Copy the prompt 
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "jewelry-designer" (@ai-hub-admin/jewelry-designer) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/ai-hub-admin/skills/jewelry-designer
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  2.2. User Prompt
&lt;/h3&gt;

&lt;p&gt;The Jewelry Designer Skills provide two APIs for customizing jewelry designs. You can simply describe your requirements using text or reference images and use these APIs/Skills to generate and modify your designs.&lt;/p&gt;

&lt;p&gt;The first API, &lt;code&gt;jewelry_generator_hand_drawn_sketch&lt;/code&gt;, helps you generate multi-view hand-drawn sketches based on your described gemstones, bands, styles, and gem cuts (round, oval, square, etc.).&lt;/p&gt;

&lt;p&gt;The second API, &lt;code&gt;jewelry_generator_design_draft&lt;/code&gt;, converts your requirements into a parameterized, interactive 3D jewelry model viewer. You can select individual parts of the design and modify their settings through the control panels while viewing the changes directly on the 3D canvas.&lt;/p&gt;

&lt;h4&gt;
  
  
  Support Jewelry Templates
&lt;/h4&gt;

&lt;p&gt;Also, supported templates can help you find existing jewelry 3d models and domain knowledge. The design include &lt;code&gt;bracelet&lt;/code&gt;, &lt;code&gt;beaded-bracelet&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;ring&lt;/code&gt;, &lt;code&gt;necklace&lt;/code&gt;, &lt;code&gt;pet-jewelry-collar&lt;/code&gt;, &lt;code&gt;earrings&lt;/code&gt;, &lt;code&gt;body-chain&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  2.2.1 Generate a Hand Drawn Sketch
&lt;/h4&gt;

&lt;p&gt;prompt: Ruby Rings with oval cut, band should be rose gold with US size 10.&lt;br&gt;
prompt: Sapphire Ring of twisted platium bands.&lt;br&gt;
prompt: Crystal Beaded Bracelets of Purple and Yellow Crystal interleaved at least 12 beads, small size.&lt;/p&gt;

&lt;p&gt;After the design, the skills will calls the APIs and return a shared workspace or rendered sketch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;### Ruby Ring Design share_url of sketch 

https://us-static.aiagenta2z.com/local/files-wd/onekey_llm_router/d426ff6f-bd56-49d1-9ec9-54906bcc78bd.png

### Sapphire Ring Workspace
https://craftsman-agent.aiagenta2z.com/app/sessions/share/45c9f495-3f14-4093-bcef-5f85d6910a3a


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

&lt;/div&gt;



&lt;h4&gt;
  
  
  2.2.2 Generate 3D Interactive Views of Jewelry
&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%2Fuobm3fhxxjdiyk2vx9vb.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%2Fuobm3fhxxjdiyk2vx9vb.png" alt=" " width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This API provides different settings for the templates to render. &lt;/p&gt;

&lt;p&gt;For example, for the Beaded Bracelet (prompt: Crystal Beaded Bracelets with the color size and rope or links.)&lt;br&gt;
user can specify the wrist_circumference, bracelet_length, bead_shape, and even gemstone_type.&lt;/p&gt;

&lt;p&gt;The skills can help under stand your needs by specifying:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;prompt:  Crystal Beaded Bracelets of Purple and Yellow Crystal interleaved at least 12 beads

### adjust the beads size
prompt:   Crystal Beaded Bracelets of Purple and Yellow Crystal interleaved at least 12 beads with smaller size.

### Change the cut of the Gems from round to facets
prompt:   Crystal Beaded Bracelets of Purple and Yellow Crystal interleaved at least 12 beads, Beads shape should be small and cut with Facets. 

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Example Beaded Bracelet Paramteric Settings
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;template_id&lt;/code&gt;: &lt;code&gt;beaded-bracelet&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;Parameter                           Supported IDs / Value&lt;/p&gt;




&lt;p&gt;&lt;code&gt;asset_size&lt;/code&gt;                        &lt;code&gt;default&lt;/code&gt;, &lt;code&gt;small&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;large&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrist_circumference&lt;/code&gt;               Default &lt;code&gt;18cm&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bracelet_length&lt;/code&gt;                   Default &lt;code&gt;18cm&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bead_shape&lt;/code&gt;                        &lt;code&gt;round&lt;/code&gt;, &lt;code&gt;faceted&lt;/code&gt;, &lt;code&gt;oval&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;barrel&lt;/code&gt;, &lt;code&gt;cube&lt;/code&gt;, &lt;code&gt;disc&lt;/code&gt;, &lt;code&gt;bicone&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;irregular&lt;/code&gt;, &lt;code&gt;custom&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bead_size&lt;/code&gt;                         &lt;code&gt;4mm&lt;/code&gt;, &lt;code&gt;6mm&lt;/code&gt;, &lt;code&gt;8mm&lt;/code&gt;, &lt;code&gt;10mm&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;12mm&lt;/code&gt;, &lt;code&gt;14mm&lt;/code&gt;, &lt;code&gt;custom&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bead_count&lt;/code&gt;                        &lt;code&gt;15&lt;/code&gt;, &lt;code&gt;18&lt;/code&gt;, &lt;code&gt;20&lt;/code&gt;, &lt;code&gt;22&lt;/code&gt;, &lt;code&gt;24&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;custom&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bead_color&lt;/code&gt;                        &lt;code&gt;clear&lt;/code&gt;, &lt;code&gt;white&lt;/code&gt;, &lt;code&gt;black&lt;/code&gt;, &lt;code&gt;pink&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;purple&lt;/code&gt;, &lt;code&gt;blue&lt;/code&gt;, &lt;code&gt;green&lt;/code&gt;, &lt;code&gt;red&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;yellow&lt;/code&gt;, &lt;code&gt;mixed&lt;/code&gt;, &lt;code&gt;custom&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bead_pattern&lt;/code&gt;                      &lt;code&gt;single-color&lt;/code&gt;, &lt;code&gt;alternating&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;gradient&lt;/code&gt;, &lt;code&gt;random&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;symmetrical&lt;/code&gt;, &lt;code&gt;center-accent&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;material&lt;/code&gt;                          &lt;code&gt;clear&lt;/code&gt;, &lt;code&gt;amethyst&lt;/code&gt;, &lt;code&gt;rose&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;citrine&lt;/code&gt;, &lt;code&gt;smoky&lt;/code&gt;, &lt;code&gt;aqua&lt;/code&gt;, &lt;code&gt;moon&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;lab&lt;/code&gt;, &lt;code&gt;straw&lt;/code&gt;, &lt;code&gt;rutile&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;phantom&lt;/code&gt;, &lt;code&gt;sunstone&lt;/code&gt;, &lt;code&gt;obsidian&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;tiger&lt;/code&gt;, &lt;code&gt;agate&lt;/code&gt;, &lt;code&gt;jade&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;emerald&lt;/code&gt;, &lt;code&gt;ruby&lt;/code&gt;, &lt;code&gt;sapphire&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;lapis&lt;/code&gt;, &lt;code&gt;garnet&lt;/code&gt;, &lt;code&gt;topaz&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;amazon&lt;/code&gt;, &lt;code&gt;kunzite&lt;/code&gt;, &lt;code&gt;pearl&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;gemstone_type&lt;/code&gt;                     &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;amethyst&lt;/code&gt;, &lt;code&gt;rose-quartz&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;clear-quartz&lt;/code&gt;, &lt;code&gt;smoky-quartz&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;citrine&lt;/code&gt;, &lt;code&gt;agate&lt;/code&gt;, &lt;code&gt;jade&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;obsidian&lt;/code&gt;, &lt;code&gt;tiger-eye&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;lapis-lazuli&lt;/code&gt;, &lt;code&gt;turquoise&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;tourmaline&lt;/code&gt;, &lt;code&gt;mixed&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;string_type&lt;/code&gt;                       &lt;code&gt;elastic&lt;/code&gt;, &lt;code&gt;nylon&lt;/code&gt;, &lt;code&gt;silicone&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;wire&lt;/code&gt;, &lt;code&gt;leather&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;string_color&lt;/code&gt;                      &lt;code&gt;clear&lt;/code&gt;, &lt;code&gt;white&lt;/code&gt;, &lt;code&gt;black&lt;/code&gt;, &lt;code&gt;brown&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;gold&lt;/code&gt;, &lt;code&gt;silver&lt;/code&gt;, &lt;code&gt;custom&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;accent_beads&lt;/code&gt;                      &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;gold&lt;/code&gt;, &lt;code&gt;silver&lt;/code&gt;, &lt;code&gt;pearl&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;crystal&lt;/code&gt;, &lt;code&gt;metal&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;center_bead&lt;/code&gt;                       &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;large-bead&lt;/code&gt;, &lt;code&gt;charm&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;pendant&lt;/code&gt;, &lt;code&gt;engraved&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;charm_type&lt;/code&gt;                        &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;heart&lt;/code&gt;, &lt;code&gt;star&lt;/code&gt;, &lt;code&gt;flower&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;animal&lt;/code&gt;, &lt;code&gt;letter&lt;/code&gt;, &lt;code&gt;symbol&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;custom&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;layer_count&lt;/code&gt;                       &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;closure&lt;/code&gt;                           &lt;code&gt;stretch&lt;/code&gt;, &lt;code&gt;lobster&lt;/code&gt;, &lt;code&gt;toggle&lt;/code&gt;,&lt;br&gt;
                                      &lt;code&gt;magnetic&lt;/code&gt;, &lt;code&gt;buckle&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;adjustability&lt;/code&gt;                     &lt;code&gt;fixed&lt;/code&gt;, &lt;code&gt;adjustable&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Finally, once you are satisfied with your jewelry design, you have several options for taking it to the next step. You can download high-quality images, export the 3D model in .glb format, or generate an orbit video to showcase your design from different angles.&lt;/p&gt;

&lt;p&gt;More importantly, you can make a quote based on others design on the marketplace (&lt;a href="https://craftsman-agent.aiagenta2z.com/marketplace" rel="noopener noreferrer"&gt;https://craftsman-agent.aiagenta2z.com/marketplace&lt;/a&gt;)&lt;br&gt;
or send your finalized design to verified Craftsman workshops through the Craftsman Agent Manufacturing on Demand (MOD) Platform for production quotes and manufacturing. This allows you to move directly from an AI-generated concept and interactive 3D model to real-world production.&lt;/p&gt;

&lt;p&gt;Explore verified Craftsman workshops and manufacturing services here:&lt;br&gt;
 &lt;a href="https://craftsman-agent.aiagenta2z.com/store/craftsman" rel="noopener noreferrer"&gt;https://craftsman-agent.aiagenta2z.com/store/craftsman&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Related
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://craftsman-agent.aiagenta2z.com/gallery/jewelry_designer" rel="noopener noreferrer"&gt;Craftsman Agent Gallery&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://craftsman-agent.aiagenta2z.com/app/jewelry-designer" rel="noopener noreferrer"&gt;AI Jewelry Designer App&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>jewelry</category>
      <category>craftsmanagent</category>
      <category>design</category>
    </item>
    <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>
