<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Roy Lu</title><description>Robotics-focused Software Engineer</description><link>https://blog.roy422.dev/</link><language>en</language><item><title>2025: The Craziest Year of My Life</title><link>https://blog.roy422.dev/en/blog/2025-review/</link><guid isPermaLink="true">https://blog.roy422.dev/en/blog/2025-review/</guid><description>From confusion to clarity, a massive expansion of my tech stack, and record-breaking project output. This was the craziest year of my twenty years.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Preface&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;../images/cover-2025-review.jpg&quot; alt=&quot;2025 review cover&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2025 was a year full of breakthroughs for me. From the confusion at the beginning of the year to the clarity at the end, the transformation this year surprised even myself.&lt;/p&gt;
&lt;h2&gt;Technical Growth&lt;/h2&gt;
&lt;h3&gt;AI &amp;amp; LLM&lt;/h3&gt;
&lt;p&gt;This year I dove deep into AI application frameworks like LangChain and LangGraph, and actually built DebateAI, a multi-agent debate platform.&lt;/p&gt;
&lt;h3&gt;Robotics&lt;/h3&gt;
&lt;p&gt;Through the &quot;Elder Dog&quot; project, I got hands-on with ROS2 and Unitree Go2 robot dog development - an entirely new field for me.&lt;/p&gt;
&lt;h3&gt;Web Development&lt;/h3&gt;
&lt;p&gt;From React to Next.js to Astro, I continuously explored technologies that best fit different scenarios.&lt;/p&gt;
&lt;h2&gt;Project Output&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;DebateAI: Multi-agent AI debate platform&lt;/li&gt;
&lt;li&gt;ReMind: Discord bot with long-term memory&lt;/li&gt;
&lt;li&gt;ElderDog: Elderly care robot dog system&lt;/li&gt;
&lt;li&gt;roy422.dev: Personal portfolio website&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Looking Forward to 2026&lt;/h2&gt;
&lt;p&gt;In the new year, I hope to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Complete the &quot;Elder Dog&quot; project presentation&lt;/li&gt;
&lt;li&gt;Continue diving into the intersection of AI and robotics&lt;/li&gt;
&lt;li&gt;Produce more technical articles to share my learnings&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>2025: 我人生最瘋狂的一年</title><link>https://blog.roy422.dev/zh/blog/2025-review/</link><guid isPermaLink="true">https://blog.roy422.dev/zh/blog/2025-review/</guid><description>從迷茫到目標明確的心態轉變，技術棧大爆發，專案產出創新高。這是我二十年來最瘋狂的一年。</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;../images/cover-2025-review.jpg&quot; alt=&quot;2025 回顧封面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2025 年對我來說是充滿突破的一年。從年初的迷茫，到年末的目標明確，這一年的轉變讓我自己都感到驚訝。&lt;/p&gt;
&lt;h2&gt;技術成長&lt;/h2&gt;
&lt;h3&gt;AI 與 LLM&lt;/h3&gt;
&lt;p&gt;今年我深入學習了 LangChain、LangGraph 等 AI 應用框架，並實際打造了 DebateAI 多代理人辯論平台。&lt;/p&gt;
&lt;h3&gt;機器人&lt;/h3&gt;
&lt;p&gt;透過「老人與狗」專題，我接觸到了 ROS2 與 Unitree Go2 機器狗的開發，這是一個全新的領域。&lt;/p&gt;
&lt;h3&gt;Web 開發&lt;/h3&gt;
&lt;p&gt;從 React 到 Next.js 再到 Astro，我不斷探索更適合不同場景的技術選擇。&lt;/p&gt;
&lt;h2&gt;專案產出&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;DebateAI：多代理人 AI 辯論平台&lt;/li&gt;
&lt;li&gt;ReMind：具備長期記憶的 Discord 機器人&lt;/li&gt;
&lt;li&gt;ElderDog：高齡照護機器狗系統&lt;/li&gt;
&lt;li&gt;roy422.dev：個人作品集網站&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;展望 2026&lt;/h2&gt;
&lt;p&gt;新的一年，我希望能夠：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;完成「老人與狗」專題發表&lt;/li&gt;
&lt;li&gt;持續深入 AI 與機器人的交叉領域&lt;/li&gt;
&lt;li&gt;產出更多技術文章分享學習心得&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>Building a Multi-Agent Debate Platform with LangGraph</title><link>https://blog.roy422.dev/en/blog/langgraph-debate/</link><guid isPermaLink="true">https://blog.roy422.dev/en/blog/langgraph-debate/</guid><description>Building DebateAI from scratch - documenting the technical details and lessons learned implementing multi-agent collaboration with LangGraph.</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Why LangGraph?&lt;/h2&gt;
&lt;p&gt;Among the many AI frameworks, what attracted me most about LangGraph is its StateGraph mechanism. Compared to simple Chains, StateGraph provides more flexible control flow, making it ideal for scenarios requiring multiple agents to interact.&lt;/p&gt;
&lt;h2&gt;Architecture Design&lt;/h2&gt;
&lt;h3&gt;Role Design&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;class DebateRole(Enum):
    MODERATOR = &quot;moderator&quot;
    PRO = &quot;pro&quot;
    CON = &quot;con&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;State Design&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;class DebateState(TypedDict):
    topic: str
    messages: list[Message]
    current_speaker: DebateRole
    round: int
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Lessons Learned&lt;/h2&gt;
&lt;h3&gt;1. Message Ordering Issues&lt;/h3&gt;
&lt;p&gt;Initially, I did not handle message ordering correctly, leading to incoherent agent responses.&lt;/p&gt;
&lt;h3&gt;2. Token Limits&lt;/h3&gt;
&lt;p&gt;As debates progressed, historical messages became too long and exceeded token limits. The solution was implementing a summarization mechanism.&lt;/p&gt;
&lt;h2&gt;Results&lt;/h2&gt;
&lt;p&gt;DebateAI can now conduct complete debate processes, including opening, interactive debate, and conclusion phases.&lt;/p&gt;
&lt;h2&gt;Next Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Add more role types&lt;/li&gt;
&lt;li&gt;Support multilingual debates&lt;/li&gt;
&lt;li&gt;Add scoring mechanism&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>LangGraph 多代理人辯論平台開發紀錄</title><link>https://blog.roy422.dev/zh/blog/langgraph-debate/</link><guid isPermaLink="true">https://blog.roy422.dev/zh/blog/langgraph-debate/</guid><description>從零開始打造 DebateAI，記錄使用 LangGraph 實現多代理人協作的技術細節與踩坑經驗。</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;為什麼選擇 LangGraph？&lt;/h2&gt;
&lt;p&gt;在眾多 AI 框架中，LangGraph 最吸引我的是它的 StateGraph 機制。相比於簡單的 Chain，StateGraph 提供了更靈活的控制流程，非常適合需要多個 Agent 互動的場景。&lt;/p&gt;
&lt;h2&gt;架構設計&lt;/h2&gt;
&lt;h3&gt;角色設計&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;class DebateRole(Enum):
    MODERATOR = &quot;moderator&quot;
    PRO = &quot;pro&quot;
    CON = &quot;con&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;State 設計&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;class DebateState(TypedDict):
    topic: str
    messages: list[Message]
    current_speaker: DebateRole
    round: int
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;踩坑紀錄&lt;/h2&gt;
&lt;h3&gt;1. 訊息順序問題&lt;/h3&gt;
&lt;p&gt;一開始沒有正確處理訊息順序，導致 Agent 的回應不連貫。&lt;/p&gt;
&lt;h3&gt;2. Token 限制&lt;/h3&gt;
&lt;p&gt;辯論進行到後期，歷史訊息太長導致超出 Token 限制。解決方案是實作摘要機制。&lt;/p&gt;
&lt;h2&gt;成果展示&lt;/h2&gt;
&lt;p&gt;目前 DebateAI 已經能夠進行完整的辯論流程，包括開場、交互辯論、總結等階段。&lt;/p&gt;
&lt;h2&gt;下一步計畫&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;加入更多角色類型&lt;/li&gt;
&lt;li&gt;支援多語言辯論&lt;/li&gt;
&lt;li&gt;加入評分機制&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item></channel></rss>