<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Team on Yarang's Tech Lair</title><link>https://blog.fcoinfup.com/tags/team/</link><description>Recent content in Team on Yarang's Tech Lair</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Mon, 30 Mar 2026 00:32:25 +0900</lastBuildDate><atom:link href="https://blog.fcoinfup.com/tags/team/index.xml" rel="self" type="application/rss+xml"/><item><title>AI Agent Team Structure: Hierarchical Architecture and Bridge Leadership Design</title><link>https://blog.fcoinfup.com/post/ai-agent-team-structure-hierarchical-architecture-and-bridge-leadership-design/</link><pubDate>Mon, 30 Mar 2026 00:32:25 +0900</pubDate><guid>https://blog.fcoinfup.com/post/ai-agent-team-structure-hierarchical-architecture-and-bridge-leadership-design/</guid><description>&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;Sharing my experience building an AI agent team for a blog system development project, using hierarchical structure and bridge leadership. I&amp;rsquo;ll walk through how we achieved both cost optimization and maximum performance with a team of &lt;strong&gt;14 specialists across 4 teams&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="background"&gt;Background
&lt;/h2&gt;&lt;p&gt;The blog system is developed across three domains: &lt;strong&gt;Backend (FastAPI)&lt;/strong&gt;, &lt;strong&gt;Frontend (Next.js)&lt;/strong&gt;, and &lt;strong&gt;Desktop (Tauri)&lt;/strong&gt;. Each domain requires a specialized skill set, along with unified architecture design and security review.&lt;/p&gt;
&lt;h2 id="team-structure-design-principles"&gt;Team Structure Design Principles
&lt;/h2&gt;&lt;h3 id="1-cost-optimization"&gt;1. Cost Optimization
&lt;/h3&gt;&lt;p&gt;High-performance models like Claude Opus are expensive. Running the entire team on such models leads to exponential costs. To address this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Leader/Design&lt;/strong&gt;: High-performance model (Claude Opus)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Team members&lt;/strong&gt;: Cost-effective model (GLM-5.1, 60-70% cost reduction)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Special purpose&lt;/strong&gt;: Dedicated models (Gemini for design, o3-mini for security)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-expert-separation"&gt;2. Expert Separation
&lt;/h3&gt;&lt;p&gt;It&amp;rsquo;s more efficient to have specialists responsible for their domains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Architect&lt;/strong&gt;: System architecture, API design&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security Reviewer&lt;/strong&gt;: OWASP, vulnerability analysis&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tech Lead&lt;/strong&gt;: Team management + code review&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developer&lt;/strong&gt;: Implementation work&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-bridge-leadership"&gt;3. Bridge Leadership
&lt;/h3&gt;&lt;p&gt;To resolve communication bottlenecks between upper and lower teams, tech leads have &lt;strong&gt;dual membership&lt;/strong&gt; in both tiers.&lt;/p&gt;
&lt;h2 id="final-team-structure"&gt;Final Team Structure
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 ST["Steering Team (Upper, 6 members)
Orchestrator: Claude Opus
Architect: Gemini 2.0 Flash
Security Reviewer: o3-mini
Backend Tech Lead: GLM-5.1
Frontend Tech Lead: GLM-5.1
Desktop Tech Lead: GLM-5.1"]

 BE["Backend Team (Lower, 4 members)"]
 FE["Frontend Team (Lower, 3 members)"]
 DT["Desktop Team (Lower, 3 members)"]

 ST -.-&gt;|Backend Tech Lead Bridge| BE
 ST -.-&gt;|Frontend Tech Lead Bridge| FE
 ST -.-&gt;|Desktop Tech Lead Bridge| DT

 BE --&gt; BE_T["Backend Tech Lead (Leader)"]
 BE_T --&gt; BE_DEV["Backend Developer"]
 BE_T --&gt; BE_DB["DB Architect"]
 BE_T --&gt; BE_SVR["Server Admin"]

 FE --&gt; FE_T["Frontend Tech Lead (Leader)"]
 FE_T --&gt; FE_DEV["Frontend Developer"]
 FE_T --&gt; FE_UX["UX Designer"]

 DT --&gt; DT_T["Desktop Tech Lead (Leader)"]
 DT_T --&gt; DT_DEV["Desktop Developer"]
 DT_T --&gt; DT_UX["UX Designer (Shared)"]&lt;/pre&gt;&lt;h2 id="steering-team-upper-6-members"&gt;Steering Team (Upper, 6 members)
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Role&lt;/th&gt;
 &lt;th&gt;Model&lt;/th&gt;
 &lt;th&gt;Responsibility&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Orchestrator&lt;/td&gt;
 &lt;td&gt;Claude Opus&lt;/td&gt;
 &lt;td&gt;Overall coordination, final decisions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Architect&lt;/td&gt;
 &lt;td&gt;Gemini 2.0 Flash&lt;/td&gt;
 &lt;td&gt;Rapid design, prototyping&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Security Reviewer&lt;/td&gt;
 &lt;td&gt;o3-mini&lt;/td&gt;
 &lt;td&gt;Security review, vulnerability analysis&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Backend Tech Lead&lt;/td&gt;
 &lt;td&gt;GLM-5.1&lt;/td&gt;
 &lt;td&gt;Backend team bridge&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Frontend Tech Lead&lt;/td&gt;
 &lt;td&gt;GLM-5.1&lt;/td&gt;
 &lt;td&gt;Frontend team bridge&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Desktop Tech Lead&lt;/td&gt;
 &lt;td&gt;GLM-5.1&lt;/td&gt;
 &lt;td&gt;Desktop team bridge&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We adopted &lt;strong&gt;Consensus&lt;/strong&gt;. All decisions in the steering team are made through consensus, with each expert having a voice in their domain.&lt;/p&gt;
&lt;h2 id="sub-teams-3-teams"&gt;Sub-Teams (3 teams)
&lt;/h2&gt;&lt;h3 id="backend-team-4-members"&gt;Backend Team (4 members)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Backend Tech Lead&lt;/strong&gt; (Leader, Bridge): FastAPI, SQLAlchemy, PostgreSQL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Backend Developer&lt;/strong&gt;: API endpoint implementation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database Architect&lt;/strong&gt;: Schema design, query optimization&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server Admin&lt;/strong&gt;: Docker, Ubuntu, monitoring&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="frontend-team-3-members"&gt;Frontend Team (3 members)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Frontend Tech Lead&lt;/strong&gt; (Leader, Bridge): Next.js 15, React Server Components&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frontend Developer&lt;/strong&gt;: UI components, ISR&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UX Designer&lt;/strong&gt;: Wireframes, component design&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="desktop-team-3-members"&gt;Desktop Team (3 members)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Desktop Tech Lead&lt;/strong&gt; (Leader, Bridge): Tauri, Rust&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desktop Developer&lt;/strong&gt;: Local application implementation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UX Designer&lt;/strong&gt;: Shared expert (shared with frontend team)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="bridge-leadership-the-core-design"&gt;Bridge Leadership: The Core Design
&lt;/h2&gt;&lt;p&gt;The key is tech leads having &lt;strong&gt;dual membership&lt;/strong&gt; in both upper and lower teams.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In the Steering Team:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Participate in architecture design&lt;/li&gt;
&lt;li&gt;Decision-making for backend/frontend/desktop concerns&lt;/li&gt;
&lt;li&gt;Technical coordination with other teams&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;In the Sub-Team:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Task assignment to team members&lt;/li&gt;
&lt;li&gt;Code review&lt;/li&gt;
&lt;li&gt;Technical coaching&lt;/li&gt;
&lt;li&gt;Schedule management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bridge effect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Upward&lt;/strong&gt;: Escalate technical issues from team members to steering team&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Downward&lt;/strong&gt;: Interpret and communicate steering team design decisions to team members&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="model-distribution-strategy"&gt;Model Distribution Strategy
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Model&lt;/th&gt;
 &lt;th&gt;Count&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;th&gt;Cost&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Opus&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;Orchestrator&lt;/td&gt;
 &lt;td&gt;Very high&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini 2.0 Flash&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;Design&lt;/td&gt;
 &lt;td&gt;Free/low&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;o3-mini&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;Security review&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;GLM-5.1&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;11&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Tech leads + members&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Low&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;By assigning 11 team members to GLM-5.1, we achieved &lt;strong&gt;60-70% cost reduction&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="shared-expert-structure"&gt;Shared Expert Structure
&lt;/h2&gt;&lt;p&gt;UX Designer has &lt;strong&gt;simultaneous membership&lt;/strong&gt; in both frontend and desktop teams.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt; Design consistency, resource efficiency, centralized communication&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disadvantages:&lt;/strong&gt; Bottleneck when overloaded, wait time when both teams need design simultaneously&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt; Priority-based task assignment, add external designer agent when needed&lt;/p&gt;
&lt;h2 id="alternative-structures-considered"&gt;Alternative Structures Considered
&lt;/h2&gt;&lt;h3 id="alternative-1-pool-structure"&gt;Alternative 1: Pool Structure
&lt;/h3&gt;&lt;p&gt;Manage specialists as a &lt;strong&gt;Pool&lt;/strong&gt; rather than assigning them to specific teams.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph LR
 Pool["Specialist Pool
UX Designer
Security Reviewer
Tech Lead"]

 BE["Backend Team"]
 FE["Frontend Team"]
 DT["Desktop Team"]

 Pool -.-&gt;|draft| BE
 Pool -.-&gt;|draft| FE
 Pool -.-&gt;|draft| DT&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt; Flexibility, resource efficiency / &lt;strong&gt;Cons:&lt;/strong&gt; Requires Pool structure support in Relay plugin&lt;/p&gt;
&lt;h3 id="alternative-2-lean-steering-team"&gt;Alternative 2: Lean Steering Team
&lt;/h3&gt;&lt;p&gt;Reduce steering team to 3 members, with tech leads joining only when needed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt; Faster decision-making / &lt;strong&gt;Cons:&lt;/strong&gt; Tech leads excluded from key decisions&lt;/p&gt;
&lt;h3 id="adopted-current-structure"&gt;Adopted: Current Structure
&lt;/h3&gt;&lt;p&gt;The reason is &lt;strong&gt;&amp;ldquo;execution first&amp;rdquo;&lt;/strong&gt;. Rather than finding the perfect structure, we chose to start with an executable structure and improve as we go.&lt;/p&gt;
&lt;h2 id="how-to-run"&gt;How to Run
&lt;/h2&gt;&lt;h3 id="zai-mode-default"&gt;Zai Mode (Default)
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;env CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; /Users/yarang/.local/bin/claude &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --settings .agent_forge_for_zai.json &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --teammate-mode tmux &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --plugin-dir /Users/yarang/working/agent_teams/relay-plugin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="wrapper-design"&gt;Wrapper Design
&lt;/h2&gt;&lt;p&gt;Gemini and OpenAI are not compatible with the Anthropic API. We wrote a &lt;strong&gt;Python HTTP Wrapper&lt;/strong&gt; to convert:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Claude Code → Anthropic API format request
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Wrapper Server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (Anthropic → Gemini/OpenAI conversion)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Gemini/OpenAI API
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (Gemini/OpenAI → Anthropic conversion)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Claude Code
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="conclusion"&gt;Conclusion
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Cost optimization&lt;/strong&gt;: Focus high-performance models on leadership/design only&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expert separation&lt;/strong&gt;: Assign specialized models to design, security, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bridge leadership&lt;/strong&gt;: Resolve communication bottlenecks between upper and lower teams&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Execution first&lt;/strong&gt;: Start with an executable structure rather than a perfect one&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The next post will share our actual team operation experience, the issues we encountered, and how we resolved them.&lt;/p&gt;</description></item></channel></rss>