<?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: Bartolomeo Hart</title>
    <description>The latest articles on DEV Community by Bartolomeo Hart (@bartohm).</description>
    <link>https://dev.to/bartohm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2524655%2F1bf82b31-7afb-47a0-b2ae-a090370228c6.png</url>
      <title>DEV Community: Bartolomeo Hart</title>
      <link>https://dev.to/bartohm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bartohm"/>
    <language>en</language>
    <item>
      <title>My 48h SaaS Challenge</title>
      <dc:creator>Bartolomeo Hart</dc:creator>
      <pubDate>Thu, 27 Mar 2025 18:26:51 +0000</pubDate>
      <link>https://dev.to/bartohm/my-48h-saas-challenge-2i9h</link>
      <guid>https://dev.to/bartohm/my-48h-saas-challenge-2i9h</guid>
      <description>&lt;p&gt;Just wrapped up a challenge to build a SaaS as quickly as possible 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Create a working SaaS product that analyzes crypto content, solo from scratch, within the timespan of 2 days! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's how it went...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I spent the first 6 hours researching, planning and designing what to build and how to build it. With crypto being my focus area, I wanted something that could extract insights from videos and provide actionable data.&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%2Fbjfni60j3nxno3qwb75p.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%2Fbjfni60j3nxno3qwb75p.png" alt="Landing page" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The frontend work consumed about 10 hours, building a responsive Next.js website with landing page and dashboard.&lt;/p&gt;

&lt;p&gt;I was able to build a complete frontend containing: &lt;br&gt;
• A pricing overview page&lt;br&gt;
• Checkout flow&lt;br&gt;
• Dark/light mode with persistence&lt;br&gt;
• Full legal documentation&lt;/p&gt;

&lt;p&gt;And much more, even dark/light mode. It's actually cool that it turned out this way with limited time!&lt;/p&gt;

&lt;p&gt;The dashboard uses Chart.js for visualizations and lets users track price targets, follow event timelines, and filter through raw data, which can be exported as .csv and used for ones own purposes.&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%2Fksvl7hwzhckvjbu6ewd4.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%2Fksvl7hwzhckvjbu6ewd4.png" alt="Dashboard page" width="800" height="762"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Backend development took roughly 6 hours, setting up FastAPI, YouTube caption extraction, and database integration. While I've built Flask and Django backends before, this was my first FastAPI project.&lt;/p&gt;

&lt;p&gt;And that's where things got tricky. 😅&lt;/p&gt;

&lt;p&gt;The FastAPI with background tasks became a nightmare, concurrent operations kept hanging. With only 4 hours left to debug, I couldn't solve the fundamental issues with the AI-generated boilerplate code.&lt;/p&gt;

&lt;p&gt;Payment integration was another unexpected challenge. Cryptomus rejected my application twice, first for an incomplete offer (fair), then because "we do not work with this category of projects." Despite checking their guidelines thoroughly, I never found any mention of restrictions on crypto+AI projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The biggest lessons I'm taking away:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't experiment with new tech stacks during tight deadlines, especially AI-generated ones. Stick with what you know or learn new tools beforehand.&lt;/p&gt;

&lt;p&gt;Payment integration needs more planning than I anticipated. Having a complete, polished product ready before applying to payment providers is crucial.&lt;/p&gt;

&lt;p&gt;I spent too much time (again🫠) perfecting the frontend while the backend needed more attention, a classic mistake when racing against the clock.&lt;/p&gt;

&lt;p&gt;Despite the challenges, I'm not abandoning CryptoGist. It's actually a tool I genuinely need myself! I'll keep developing it, try different payment processors like Coinbase Commerce, or maybe make it open source.&lt;/p&gt;

&lt;p&gt;Checkout the website to see the final result: &lt;a href="https://www.cryptogist.xyz" rel="noopener noreferrer"&gt;https://www.cryptogist.xyz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This 48-hour sprint taught me what's possible with modern tools, and eventhough there where some pitfalls, I believe that challenges such as these will allow you to become better and better with each iteration, allowing you to slowly setup a framework for success and a structured approach to quickly get stuff off the ground.&lt;/p&gt;




&lt;p&gt;I like to try out stuff and build cool things, give me a follow on &lt;a href="https://x.com/bart_ohm" rel="noopener noreferrer"&gt;x.com&lt;/a&gt; if you want to see more of my failed attempts (and successes)👋&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Get Started with Wishlists on Github</title>
      <dc:creator>Bartolomeo Hart</dc:creator>
      <pubDate>Thu, 27 Feb 2025 22:40:19 +0000</pubDate>
      <link>https://dev.to/bartohm/get-started-with-wishlists-on-github-320o</link>
      <guid>https://dev.to/bartohm/get-started-with-wishlists-on-github-320o</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.amazonaws.com%2Fuploads%2Farticles%2Feni1voriwjw86iftx796.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%2Feni1voriwjw86iftx796.png" alt="Image description" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ever wondered what happens to all those brilliant feature ideas and tool concepts floating around in peoples minds and conversations? They often remain just that, ideas.&lt;/p&gt;

&lt;p&gt;That's why I created Wishlist, a GitHub-based ecosystem to transform scattered ideas into structured proposals that can eventually become "Awesome" projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧞 How it works
&lt;/h2&gt;

&lt;p&gt;Wishlist is essentially the "Pre-Awesome" stage in the innovation pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Web → Scattered Wishes → Wishlist → Feature/Tool → Implementation → Awesome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The formal process is straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork/clone the wish template from the repo&lt;/li&gt;
&lt;li&gt;Fill in the structured template with your idea&lt;/li&gt;
&lt;li&gt;Submit a pull request to the Wishlist&lt;/li&gt;
&lt;li&gt;Community members discuss, refine, and validate the proposal&lt;/li&gt;
&lt;li&gt;Developers can fund it, build it, or collaborate on implementation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Using an RFC-inspired structure with GitHub Repos for lists and Gists for individual wishes, every proposal is version-controlled, shareable, and ready for community input.&lt;/p&gt;

&lt;h2&gt;
  
  
  📜 Example wish
&lt;/h2&gt;

&lt;p&gt;The first wish has just been submitted (with more wishes in the works)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Powered Proposal Builder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An AI tool that converts simple ideas into structured technical proposals (wishes) in milisecond🤖&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This tool would help:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Newcomers without technical experience share great idea's&lt;/li&gt;
&lt;li&gt;Busy devs needing quick boilerplate buildplans&lt;/li&gt;
&lt;li&gt;Anyone with a good idea but lacking technical writing skills&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The process is beautifully simple:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Input your raw idea&lt;/li&gt;
&lt;li&gt;AI structures it properly&lt;/li&gt;
&lt;li&gt;Get a complete wish proposal&lt;/li&gt;
&lt;li&gt;Submit or refine&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No more staring at blank templates wondering where to start!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interested in building this idea?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Have a look at the &lt;a href="https://gist.github.com/unameit10000000/b86317c7800e7a54b11a53769510ef04" rel="noopener noreferrer"&gt;wish&lt;/a&gt; example or read our &lt;a href="https://github.com/unameit10000000/wishlist/blob/main/manifesto.md" rel="noopener noreferrer"&gt;manifesto&lt;/a&gt; and start adding your own brilliant ideas&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't want to add your idea just yet?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Save and star⭐ our repo for later &lt;a href="https://github.com/unameit10000000/wishlist" rel="noopener noreferrer"&gt;github.com/unameit10000000/wishlist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks for helping in bridging the gap between brilliant ideas and implementation!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>community</category>
      <category>development</category>
      <category>ai</category>
    </item>
    <item>
      <title>Wishlist: Transform Idea’s into Awesome Stuff</title>
      <dc:creator>Bartolomeo Hart</dc:creator>
      <pubDate>Wed, 26 Feb 2025 00:08:51 +0000</pubDate>
      <link>https://dev.to/bartohm/wishlist-transform-ideas-into-awesome-stuff-5b6f</link>
      <guid>https://dev.to/bartohm/wishlist-transform-ideas-into-awesome-stuff-5b6f</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.amazonaws.com%2Fuploads%2Farticles%2Fzljsoikyeu7p12ivw36w.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%2Fzljsoikyeu7p12ivw36w.png" alt="Image description" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Awesome Phenomenon 🕶️
&lt;/h2&gt;

&lt;p&gt;The 'Awesome' brand has become one of the biggest household names in software without even being a company. As a developer, you've undoubtedly encountered it whether through the official Awesome repository, Font Awesome, or one of the countless Awesome-marked resources floating around GitHub and the wider web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you haven't heard about it,&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Awesome is essentially a GitHub repository acting as a central hub that links to other carefully curated lists following a specific format. These lists link to cool opensource projects related to everything surrounding tech: programming languages, libraries, protocols, design, gaming, AI, and much more. It's become the go-to resource for developers searching for high-quality, community approved content.&lt;/p&gt;

&lt;p&gt;Awesome gained serious momentum around 2014, with early repositories like Vinta Chen's "awesome-python" and Sindre Sorhus's central "awesome" list establishing what would become one of the greatest movements in the opensource community.&lt;br&gt;
 &lt;br&gt;
Today, both repos are well over 200k stars, making them among the most-starred repositories on GitHub. If you've built something awesome, the Awesome repo is where you'd showcase your creation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;However,&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What about all of us with brilliant ideas for tools or features that don't exist yet? Where do we go?&lt;/p&gt;
&lt;h2&gt;
  
  
  A Creator's Dilemma 🪦
&lt;/h2&gt;

&lt;p&gt;If you're anything like me, your mind is constantly occupied with new and sometimes crazy ideas. Days without thinking about new apps, features, or tools are a rare exception.&lt;/p&gt;

&lt;p&gt;The problem I face is the impossibility of keeping up with my own thoughts and building everything myself. While the reasons for this may vary for others, for me, it's simply a lack of skills, time, and resources. &lt;/p&gt;

&lt;p&gt;Questions I've been asking myself are: Where do I start? Who’s going to take my idea seriously? How can I quickly expose my idea to a lot of people to get help, validation, and hopefully, build it? This struggle has been a major personal frustration I've carried for the past decade in software, and I'm certain I am not the only one.&lt;/p&gt;

&lt;p&gt;But these roadblocks have never stopped me from trying, and they shouldn't stop you either. So what's the solution?&lt;/p&gt;
&lt;h2&gt;
  
  
  Enter Wishlist 📜
&lt;/h2&gt;

&lt;p&gt;Wishlist is The '&lt;em&gt;Pre-Awesome&lt;/em&gt;' version of the Awesome repo. This is a place to propose and share innovative tool and feature ideas that don't exist yet, but could be a gamechanger for developers, creators, and enthusiasts. If you've ever dreamed about opensource features or tools that could make life or work easier, this is where you can dream big and add your vision to a growing collection of possibilities.&lt;/p&gt;
&lt;h3&gt;
  
  
  From Wish to Awesome 💫
&lt;/h3&gt;

&lt;p&gt;Wishlist offers a fresh approach to transforming ideas into reality. Rather than letting great concepts remain scattered across forums or locked in our heads, it provides a standardized platform for two main purposes: proposing entirely new tools that might not exist yet, and suggesting innovative features for existing projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The idea is simple:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Web → Scattered Wishes → Wishlist → Feature/Tool → Implementation → Awesome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  RFC-Inspired Structure 🦋
&lt;/h3&gt;

&lt;p&gt;What makes Wishlist particularly powerful is its RFC-inspired approach to structuring proposals. Similar to how many established projects manage their feature requests through Request for Comments (RFC) processes, Wishlist adopts a formalized approach to documenting and discussing ideas.&lt;/p&gt;

&lt;p&gt;The key difference? Wishlist leverages both GitHub Repo's and Gists as the primary medium. Repo's for lists and Gists for wishes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gists, for example, are perfect for casting wishes because they're:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Version-controlled&lt;/li&gt;
&lt;li&gt;Easily shareable with unique URLs&lt;/li&gt;
&lt;li&gt;Very lightweight and don't require full repository creation&lt;/li&gt;
&lt;li&gt;Allow for comments and community discussion encapsulated within wish proposals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This structure creates natural compatibility with projects that already implement RFC processes, making it easier to graduate a wish into a formal proposal for an existing project. The standardized format also ensures that all crucial aspects of an idea are thoroughly considered and documented.&lt;/p&gt;

&lt;p&gt;Pretty awesome, right?&lt;/p&gt;

&lt;h3&gt;
  
  
  Explore Wishlist 🌟
&lt;/h3&gt;

&lt;p&gt;Wishlist is a space where innovative ideas can take root before becoming reality, waiting for the right developers and resources to bring them to life!&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%2Fef2mlvzrxuglu0oz5irw.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%2Fef2mlvzrxuglu0oz5irw.png" alt="Image description" width="540" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So, if you:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Got a groundbreaking idea that could revolutionize how developers work?&lt;/li&gt;
&lt;li&gt;Or thought of a feature that would make a platform even better&lt;/li&gt;
&lt;li&gt;Are looking to collaborate with like-minded people&lt;/li&gt;
&lt;li&gt;Are looking to fund your opensource project&lt;/li&gt;
&lt;li&gt;Want to contribute to meaningfull projects&lt;/li&gt;
&lt;li&gt;Or want to explore what others are dreaming up&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Than,&lt;/strong&gt; make sure to Star or Fork the Wishlist &lt;a href="https://github.com/unameit10000000/wishlist" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Wishing! 📜✨&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>community</category>
      <category>awesome</category>
      <category>ideas</category>
    </item>
    <item>
      <title>AI is our New Drug Epidemic!💊</title>
      <dc:creator>Bartolomeo Hart</dc:creator>
      <pubDate>Thu, 23 Jan 2025 19:13:05 +0000</pubDate>
      <link>https://dev.to/bartohm/ai-is-our-new-drugs-2olh</link>
      <guid>https://dev.to/bartohm/ai-is-our-new-drugs-2olh</guid>
      <description>&lt;p&gt;&lt;strong&gt;The similarities between artificial intelligence and drugs aren't what most people expect, let alone think about.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Path Of Least Resistance
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Drug transactions🤝
&lt;/h3&gt;

&lt;p&gt;Any human and animal behaviour is fundamentally just a transaction within brains where effort is traded for rewards.&lt;/p&gt;

&lt;p&gt;Drugs exploits this wired human behaviour, transforming it into a vulnerability, offering instant gratification for actions that require minimal friction. Users trade their longterm wellbeing for immediate pleasure, damaging not only themselves but also our society in the process. At the same time, traders and traffickers are going up and beyond to provide access.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning from past failures
&lt;/h3&gt;

&lt;p&gt;Decades of drug prevention efforts have shown that neither strict enforcement nor complete legalization offers perfect solutions. The “War on Drugs” demonstrated that just banning drugs doesn’t fix the real problems, and in some cases made things worse. Drug users and gangs always find new ways to keep going.&lt;/p&gt;

&lt;p&gt;Why? Because using, trading and trafficing is stupidly easy! The barrier to entry is low, while the shortterm individual rewards are high.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI crime transactions🤑
&lt;/h3&gt;

&lt;p&gt;This pattern isn't unique to drug use, trading or trafficking but also other various addictive behaviors, and AI usage is following an alarmingly similar trajectory. AI is becomming THE favorite ingredient in a cybercriminal's cookbook. The parallels are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Low barrier to entry due to low cost and required technical knowledge&lt;/li&gt;
&lt;li&gt;Minimum effort due to ease of use, scaling and automation&lt;/li&gt;
&lt;li&gt;High reward potential&lt;/li&gt;
&lt;li&gt;Global reach&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's just one slight problem, or actually, two. First, borders in the digital realm are blurry and far easier to bypass. Second, it might even be easier than dealing drugs. Think about it: we live in an age where 12 year olds are rug pulling adults using memecoins and probably know more about technology than 70-80% of the population.&lt;/p&gt;

&lt;p&gt;So what will stop people from cooking some late night snhacks using AI?🍜 Good question…&lt;/p&gt;

&lt;h2&gt;
  
  
  The Path Forward
&lt;/h2&gt;

&lt;h3&gt;
  
  
  More questions:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;How do we regulate these intelligent systems without slowing down innovation?&lt;/li&gt;
&lt;li&gt;How do we control AI development without sacrificing all of our privacy and freedom?&lt;/li&gt;
&lt;li&gt;What role should people, tech companies and governments play in prevention?&lt;/li&gt;
&lt;li&gt;Should AI development require licensing, similar to controlled substances?&lt;/li&gt;
&lt;li&gt;Is it even possible to develop systems that guards us from AI powered attacks?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The hard truth
&lt;/h3&gt;

&lt;p&gt;History shows us that preventive measures against drugs have largely failed. The same challenge faces AI because we cannot control what we cannot see. &lt;/p&gt;

&lt;h3&gt;
  
  
  Possible solution(s)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;In my opinion, the solution leans towards full transparency rather than prohibition. Just as drug abuse flourishes in shadows, AI misuse will thrive in obscurity. &lt;/li&gt;
&lt;li&gt;We need to start asking more question, collectively, and more frequently.&lt;/li&gt;
&lt;li&gt;Utilizing tools and processes such as blockchain and transaction identification.&lt;/li&gt;
&lt;li&gt;More importantly, we should be very cautious.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Caution
&lt;/h3&gt;

&lt;p&gt;While organized crime poses an obvious threat, we must be equally cautious about corporations, and governments who might exploit AI's capabilities behind closed doors.&lt;/p&gt;

&lt;p&gt;Rules can be bent and sometimes are, benefiting those who create them, and whoever makes the rules has the most power.&lt;/p&gt;

&lt;p&gt;In the realm of AI, this power dynamic becomes even more critical, where those in power will be able to control the future and every digital transaction and interaction.&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%2Fzv48xki68si7bu59kkpy.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%2Fzv48xki68si7bu59kkpy.png" alt="control" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Be cautious who you give power to" - John McAfee&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://linktr.ee/bartolomeohart" rel="noopener noreferrer"&gt;https://linktr.ee/bartolomeohart&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>regulation</category>
      <category>compliance</category>
      <category>drugs</category>
    </item>
    <item>
      <title>Building an AI Agent Is Easy! Here’s Proof..</title>
      <dc:creator>Bartolomeo Hart</dc:creator>
      <pubDate>Tue, 21 Jan 2025 22:05:59 +0000</pubDate>
      <link>https://dev.to/bartohm/building-an-ai-agent-is-easy-heres-proof-2j3l</link>
      <guid>https://dev.to/bartohm/building-an-ai-agent-is-easy-heres-proof-2j3l</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.amazonaws.com%2Fuploads%2Farticles%2F6agn5kepn1r6p4jspeji.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%2F6agn5kepn1r6p4jspeji.png" alt="AI Agent Banner" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;I’ve created a simple AI agent that shows how anyone with minimal Python knowledge can get started. Let me show you how straightforward it can be!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(Note: Full code example provided below)&lt;/p&gt;
&lt;h2&gt;
  
  
  4 Core Components🎯
&lt;/h2&gt;
&lt;h3&gt;
  
  
  The Brain (AI Model Connection)
&lt;/h3&gt;

&lt;p&gt;At its core, an AI agent just needs to talk to a language model. Here’s how you establish a connection using the Anthropic API:&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="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;anthropic_api_key&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;anthropic_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;anthropic_api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;models&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;haiku&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;claude-3-haiku-20240307&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;sonnet&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;claude-3-sonnet-20240229&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Memory (Action Management)
&lt;/h3&gt;

&lt;p&gt;Register  all possible actions that are available for your agent to use. No rocket science here:&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="c1"&gt;# Register single actions
&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;actions&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;search_wikipedia&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;search_wikipedia&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;calculate&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;calculate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get_weather&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_weather&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get_crypto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_crypto_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Register automated actions
&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;automated_actions&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;crypto_tracking&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;start_crypto_scheduler&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Instructions (System Prompt)
&lt;/h3&gt;

&lt;p&gt;Here’s where the magic happens. Just tell your AI what it can do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system_prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;You are an AI assistant that can perform both automated and one-time actions.
Response Format:
- For automation: &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;AUTOMATE: action_name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;
- For one-time actions: &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ACTION: action_name: parameter&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;
- For general queries: Respond naturally
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Executor (Command Processing)
&lt;/h3&gt;

&lt;p&gt;Simply watch for commands and execute them:&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="c1"&gt;# Check for automation command
&lt;/span&gt;&lt;span class="n"&gt;automate_match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;AUTOMATE: (\w+)&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;assistant_message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;automate_match&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;action_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;automate_match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;automated_actions&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;action_name&lt;/span&gt;&lt;span class="p"&gt;]()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Piecing It All Together 🔄
&lt;/h2&gt;

&lt;p&gt;Let’s see what this could look like:&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="c1"&gt;# Init Anthropic
&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;anthropic_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;anthropic_api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;models&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;haiku&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;claude-3-haiku-20240307&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;sonnet&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;claude-3-sonnet-20240229&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Create system prompt
&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system_prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;You are an AI assistant that ...more&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="c1"&gt;# Create automated action
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;start_crypto_scheduler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scheduler_running&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scheduler_running&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;

        &lt;span class="c1"&gt;# Schedule task for every 10 seconds
&lt;/span&gt;        &lt;span class="n"&gt;schedule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;every&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;seconds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;do&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save_crypto_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# Initial run
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save_crypto_data&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

        &lt;span class="c1"&gt;# Start scheduler in separate thread
&lt;/span&gt;        &lt;span class="n"&gt;scheduler_thread&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;threading&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Thread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run_scheduler&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;scheduler_thread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;daemon&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
        &lt;span class="n"&gt;scheduler_thread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Register action
&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;automated_actions&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;crypto_tracking&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;start_crypto_scheduler&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Excute
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_input&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="c1"&gt;# User input : "Can you monitor crypto prices?"
&lt;/span&gt;    &lt;span class="n"&gt;self&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="nf"&gt;append&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_input&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="n"&gt;conversation_history&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;msg&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;msg&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="o"&gt;!=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;selected_model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_choice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;haiku&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

    &lt;span class="c1"&gt;# Get AI response
&lt;/span&gt;    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;anthropic_client&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="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;selected_model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation_history&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system_prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;top_p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;assistant_message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&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="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;
    &lt;span class="n"&gt;self&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="nf"&gt;append&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;assistant&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;assistant_message&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

    &lt;span class="c1"&gt;# Check for automation command
&lt;/span&gt;    &lt;span class="n"&gt;automate_match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;AUTOMATE: (\w+)&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;assistant_message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;automate_match&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;action_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;automate_match&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;action_name&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;automated_actions&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;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;automated_actions&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;action_name&lt;/span&gt;&lt;span class="p"&gt;]()&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Automated task started: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error: Unknown automated action &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;action_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it! A few simple steps to go from user input to automated task execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Example🚀
&lt;/h2&gt;

&lt;p&gt;Want to try it yourself? Check out the full project code and get started within minutes: &lt;a href="https://github.com/unameit10000000/reallysimpleagent" rel="noopener noreferrer"&gt;https://github.com/unameit10000000/reallysimpleagent&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway 💡
&lt;/h2&gt;

&lt;p&gt;Building an AI agent does not need to be complex. With just basic Python knowledge and a clear structure, you can start building your own agents incrementally and create something powerfull.&lt;/p&gt;

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