Upgrade to PRO for Only $50/YearâLimited-Time Offer! ð¥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AI Coding Agent Enablement in TypeScript
Search
Yuku Kotani
May 23, 2025
Programming
21
14k
AI Coding Agent Enablement in TypeScript
TSKaigi 2025
https://2025.tskaigi.org/
Yuku Kotani
May 23, 2025
Tweet
Share
More Decks by Yuku Kotani
See All by Yuku Kotani
äžåç·æ¥åæ¹åãæ¯ãã瀟å AIãšãŒãžã§ã³ãåºç€ã®èŠè«Š
yukukotani
8
2.9k
MCPãšãã¶ã€ã³ã·ã¹ãã ã«ç«èãããã¶ã€ã³ãšå®è£ ã®èå
yukukotani
6
2.3k
Scale out your Claude Code ~âšâ©èªç€Ÿå°çšAgentã§10xããéçºããã»ã¹~
yukukotani
10
4.6k
AI Coding Agent Enablement - ãšãŒãžã§ã³ããèªèµ°ãããã
yukukotani
14
8k
Expoã«ããã¢ããªéçºã®çŸåšå°ãšReact Server Componentsãåãéãæªæ¥
yukukotani
3
740
React 19ã§ãæè»œã«CSS-in-JSãèªäœãã
yukukotani
6
950
åãæãæãTypeScriptã®æªæ¥ãåæã«å åããã
yukukotani
12
3.4k
Webæè¡ãé§äœ¿ããŠãŠãŒã¶ãŒã®ç»é¢ããé²ç»ããã
yukukotani
14
8k
Capacitor補ã®WebViewã¢ããªããReact Native補ã®ãã€ããªããã¢ããªãž
yukukotani
5
1.8k
Other Decks in Programming
See All in Programming
AIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãïŒGeminiïŒ
kondai24
0
200
Viewãã¡ãŒã¹ããªRailsã¢ããªéçºã®ãã®ãã
sugiwe
0
430
é éèšç»ã®åçåæ©èœãæäŸããåãçµã¿ã«ã€ããŠ(âœ©âŸŠé±æ¥ Meetup Vol.21@å æ¬âœïŒæ°çæé©åç·š))
izu_nori
0
140
LLM ÃaÄında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
110
ããŒã ãããŒã ã«ããEM
hitode909
0
290
AIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãïŒManusïŒ
kondai24
0
160
ìëë¡ìŽë 9ë ì°š ê°ë°ì, íë¡ ížìë 죌ëìŽë¡ ì»€ëŠ¬ìŽ ëŠ¬ì íêž°
maryang
1
110
å ç¢ãªããã³ããšã³ããã¹ãåºç€ãæ§ç¯ããããã«è¡ã£ãåãçµã¿
shogo4131
8
2.3k
tparseã§go testã®åºåãèŠããããã
utgwkk
1
190
tsgolintã¯ããã«ããŠtypescript-goã®éå ¬éAPIãåŒã³åºããŠããã®ã
syumai
6
2.1k
Cap'n Webã«ã€ããŠ
yusukebe
0
120
AIãšãŒãžã§ã³ããæŽ»ããPMè¡ AIé§åéçºã®çŸå Žãã
gyuta
0
360
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Six Lessons from altMBA
skipperchong
29
4.1k
Storybookã®UI Testing Handbookãèªãã
zakiyama
31
6.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
[SF Ruby Conf 2025] Rails X
palkan
0
490
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
How to Ace a Technical Interview
jacobian
280
24k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Bash Introduction
62gerente
615
210k
Transcript
AI Coding Agent Enablement in ~ãšãŒãžã§ã³ãã ãããã~ TypeScript èªèµ° @yukukotani
2025/05/23 - TSKaigi 2025
èªå·±çŽ¹ä» Yuku Kotani VP of Technology @ Ubie, Inc. Tech
Advisor @ SALESCORE, Inc. @yukukotani @yukukotani
ç®æ¬¡ 1. åºæ¬çãªèãæ¹ 2. ã€ããŒããªã³ã°ã®ã¢ãããŒã 3. ãšã³ã·ã¹ãã ã®æªæ¥ 4. ãŸãšã
ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ã ãã£ãšäœ¿ãããªãããïŒ
䜿ãããªãã£ãŠãªãã ããïŒ
䜿ãããªãã£ãŠãªãã ããïŒ ãã£ãšèªèµ°ããŠã»ããïŒ
èªèµ°ã£ãŠãªãã ããïŒ
èªèµ° = Human-in-the-Loop ããªãã¹ããããªã Copilotæä»£ã¯ã¹ããããåäœã§Human-in-the-LoopãåããŠãã Agentæä»£ã«ã¯ã§ããã ãèªåŸçã«å€æãããŠ1ã«ãŒãã®äœæ¥åäœã倧ããããã
ããã©ã«ãã®è§£ç©ºéã¯å€§ãããã ããã©ã«ãã§ã¯ãä»»æã®TypeScriptããããã®â𠿥µããŠåºã解空éã§ãšãŒãžã§ã³ããåã â 粟床ãäœã 解空é è§£ çæå¯Ÿè±¡ã®èšèªã®Syntaxå šäœ ïŒçã«ã¯ããããããã¹ãïŒ
åºæ¬æ¹éïŒå¯èœãªéã解空éãçµã äŒç€Ÿã»ãããžã§ã¯ãåºæã®è§£ç©ºéã¯æ¬æ¥ãã£ãšçãã¯ã é©åã«å¶çŽãäžããŠè§£ç©ºéãçµããã 解空é äŒç€Ÿã»ãããžã§ã¯ãåºæã®âš èŠçŽã»ãã¡ã€ã³ç¥èã»ãã¶ã€ã³ãªã© è§£
ã©ããã£ãŠïŒ
人éãšåæ§ã«ã€ããŒããªã³ã°ãã ã©ããã£ãŠïŒ
(1) ã³ã³ããã¹ãæ³šå ¥
解空éã®å®çŸ©ãLLMã«äžãã ããã¥ã¡ã³ããªã©äœããã®æ¹æ³ã§LLMã«ã解空éã®å®çŸ©ããäžãã 代衚çã«ã¯ Cursor Rules / Cline Rules ãªã© 解空é
äŒç€Ÿã»ãããžã§ã¯ãåºæã®âš èŠçŽã»ãã¡ã€ã³ç¥èã»ãã¶ã€ã³ãªã©
(2) æ©æ¢°çæ€æ»
æ©æ¢°çæ€æ»ã§å®çŸ©ãã解空éã«æŒãæ»ã LLMã®åºåãæ©æ¢°çã«åãå ¥ãæ€æ»ããNGã®å Žåã¯ãã£ãŒãããã¯ãã è§£ç©ºé æ©æ¢°çã«ãã£ãŒãããã¯ãäžã㊠解空éãžæŒãæ»ã
ç®æ¬¡ 1. åºæ¬çãªèãæ¹ 2. ã€ããŒããªã³ã°ã®ã¢ãããŒã 3. ãšã³ã·ã¹ãã ã®æªæ¥ 4. ãŸãšã
åãã§ãã¯
ããããåã£ãŠã³ãŒãçæã«æå¹ãªã®ïŒ  TS(åæ³šéä»ã)ãšJSã§ãã³ãããŒã¯ã¹ã³ã¢ã¯ã»ãŒå€ãããªã [arXiv:2208.08227h  anyãã€ããTSã§ã¯ã¹ã³ã¢ãäžãã [arXiv:2208.08227h âä»ã®ãšãããåããããã ãè¯ãã³ãŒããçæããããã§ã¯ãªã Â
åããããã粟床ãäžããããã§ã¯ãªÂ Â äžæãªåã¯ããããã€ãºã«ãªãé广 https://nuprl.github.io/MultiPL-E/
ãšãŒãžã§ã³ããªãïŒ åçºã®ã³ãŒãçæã«ã¯åœ¹ã«ç«ããªããšããŠãã â解空éã«æŒãæ»ãâããã®ãšãŒãžã§ã³ããžã®å ¥åãšããŠã¯åœ¹ç«ã¡ããïŒ èªåŸçã«ãšã©ãŒæ¹åïŒçæ³ïŒ
ããããŸããããªããã¡ 3åãããã«ãŒãããæ«ã«anyãšããã£ã¹ãã§èª€éåããã¡ TSã®é«åºŠãªåã解決ããèœåã¯ãŸã ãªããã
ã®ã§ãåã ãã¯æžããŠããã ãã¡ã€ã³ã¢ãã«ã颿°ã®ã·ã°ããã£ãå®çŸ©ãããŸã§ã¯ã¬ãããªäŒŽèµ°ãã ãã®åŸã®å®è£ ãèªåŸçã«ãã£ãŠããã å ã«ã·ã°ããã£ãããããšã§ åãšã©ãŒã®ã¹ã³ãŒãã»è€é床ãäœãïŒ
ãŠãã³ãŒããçæããæç¹ã§åãå®ããªãã®ã LLMãã³ãŒããåºåããæç¹ã§åå¶çŽãå®ã£ãŠãããã°ã ãããããâ解空éã®äžâãªã®ã§äœãèããªããŠæžã
å¶çŽä»ããã³ãŒãã£ã³ã°ã§ ãå®ã ææ³ LLMã®ãã³ãŒãã£ã³ã°ã®ã¿ã€ãã³ã°ã§ææ³ã«ãããããªãããŒã¯ã³ãé€e  ãã³ãŒãã£ã³ã°: LLMãåºåããããŒã¯ã³ç¢ºçãããçµæã®ããŒã¯ã³ã決G  xGrammar[arXiv:2411.15100]ãDOMINO[arXiv:2403.06988] ãªã©
(CFG baseX   å°ãªããšãStructured Outputã¯ããããããšããã£ãŠãã â»å瀟LLMããã®ææ³ã䜿ã£ãŠãããåã«ãã£ããåŠç¿ãããŠãã ããã¯äžl
Structured Output ã®ä»çµã¿ https://openai.com/ja-JP/index/introducing-structured-outputs-in-the-api/#zhi-yue-fu-kidekodo
Structured Output ã®ä»çµã¿ https://openai.com/ja-JP/index/introducing-structured-outputs-in-the-api/#zhi-yue-fu-kidekodo
LLMã®ãã³ãŒãã£ã³ã°ã®ã¿ã€ãã³ã°ã§åã«ãããããªãããŒã¯ã³ãé€Â e ã°ã©ããšãªãŒãããã³ã§ããã以äžçæããŠã絶察åãšã©ãŒããªããŒã¯ã³ããã¹ãŠ é€Â e Type-Constrained Decoding[arXiv:2504.092464 e HumanEval(æ°èŠå®è£ ãã³ã)ã§ã¯ã³ã³ãã€ã«ãšã©ãŒç å¹³å75%6
e pass@1 ã¯æ°èŠå®è£ ã¿ã¹ã¯ +3.5pp, ãšã©ãŒä¿®æ£ã¿ã¹ã¯ +37pp, etc..e e e ãã¡ããã¡ãå°ããTSã®ãµãã»ããã§ããåããªã â»ãŸã å šãå®ç𿮵éã§ã¯ãªÂ â ãã®ã¢ãããŒããé²ãã°ãæ¢åã³ãŒãã®åãæŽ»èºãããïŒ åæ§ã«å¶çŽä»ããã³ãŒãã£ã³ã°ã§ ãå®ã å
Linter
å€å žçãªéçè§£æã»èªåãã¹ã H ãšãŒãžã§ã³ãã«Linterãåãã§ãã¯ãèªåãã¹ããå®è¡ããU H ãã®çµæãããšã«èªåŸæ¹åããŠãpassãããŸã§åæã«ã«ãŒã
ãªãå€å žçææ³ïŒ p LLM-as-a-judgeã®ããã«å é²çãªè©äŸ¡ææ³ãããããâš ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããžã®ãã£ãŒãããã¯ã«ã¯éã®åŒŸäžžã§ã¯ãªX p éæ±ºå®è«çã§ãããçã®æå³ã§âä¿èšŒâã§ããªX p å®è¡é床ãé ãããšãŒãžã§ã³ãã®PDCAã®ããã«ããã¯ã«ãªã â å€å žçãªéçè§£æã»èªåãã¹ããæå¹ãäžè¬çãªã«ãŒã«ã»ããã ãã§ãªã
ã ãããžã§ã¯ãåºæã®ã«ãŒã«ãã©ãã©ãæžããŠè§£ç©ºéãçµã£ãŠãã
ãããªã«ãŒã«æžãã®å€§å€ã»ã»ã»
誰ã§ãç°¡å3ã¹ããã
æ°ã«ãªã£ãåºåã«ãã£ãŒãããã¯
ÃÃ è©°ãã
ÃÃ ã§ãããã
LLMã¯LLMã®æ°æã¡ãããã ãã£ãŒãããã¯ããŒã¹ã§è©°ãããšãâ2床ãšç¹°ãè¿ããªãâããã®ãšã©ãŒãèãã
ããã³ãããçŽãåã«Linter g Linterã¯åãã§ãã¯ãéã£ãŠâãã¯ã¹ãã¢ã¯ã·ã§ã³âãæç€ºã§ã) g Linterã¯ããã³ãããšéã£ãŠæ±ºå®çã§ãã(=ä¿èšŒã§ããq g ãªãã¹ãåãã¬ãã¥ãŒã2床ããªããŠè¯ãããã«ãã
ãã¶ã€ã³ã·ã¹ãã
ãã¶ã€ã³ã·ã¹ãã (Ubie Vitals)ã®MCPãµãŒããŒå ãã¶ã€ã³ã·ã¹ãã ãMCPãµãŒããŒã«ããããšã§ LLMã«ã³ã³ããã¹ããæ³šå ¥ã HTML+CSSãšããåºå€§ãªè§£ç©ºéããçµã
DEMO
ãã¢ã倱æãããšãçš MCPã§get_componentsããŒã«ãå©ã
ãã¢ã倱æãããšãçš ã³ã³ããŒãã³ãã®å®è£ ããã®ãŸãŸè¿ããŠãããã³ãŒããšJSDocãããã³ãã代ãã
ãã¢ã倱æãããšãçš ã³ã³ããŒãã³ãã®ãã¹ããå«ãããfew-shot prompting 代ããã«ãªã
ãã¢ã倱æãããšãçš ããŸããããšãã
åè https://zenn.dev/ubie_dev/articles/f927aaff02d618
ã³ãŒããããã¥ã¡ã³ãã«ãªã W ããããéçãªãŠãŒã¹ã±ãŒã¹ã«ãããŠMCPãšãå ¥åæ¹æ³ã¯ã©ãã§ããw W MCPãããã®ãã³ã³ããã¹ãã«å ¥ããã®ãããã®ãã¯ã¢ãã«ç¹æ§æ¬¡d W 倧äºãªã®ã¯å ¥åã«å€ããæ å ±(ããã¥ã¡ã³ã,ãã¶ã€ã³ã·ã¹ãã ,etc...)ã®æŽ ãã¶ã€ã³ã·ã¹ãã 以å€ã«ããŠãŒã¹ã±ãŒã¹ããããããã W TypeScriptã³ãŒããããã¥ã¡ã³ããšããŠè²ãŠã䟡å€ããÂ
W
[宣äŒ] ã¢ãã¿ãŒã€ãã³ããããŸã TypeScriptã³ãŒããããã¥ã¡ã³ããšããŠæ©èœããã話ã®ç¶ãã¯ãã¡ã https://bitkey.connpass.com/event/351174/
ç®æ¬¡ 1. åºæ¬çãªèãæ¹ 2. ã€ããŒããªã³ã°ã®ã¢ãããŒã 3. ãšã³ã·ã¹ãã ã®æªæ¥ 4. ãŸãšã
Speed is King t ã¶ã£ã¡ããä»ãŸã§ãLinterãšãã«ãããŸã§éåºŠãæ±ããŠããªãã£Â t CIåŸ ã£ãŠãéã¯ä»ã®ããšãããã»ã»T t ãŠãã©ã¡ãã«ããtscãé ããã»ã»T t
ãã©ããã¯äººéã®æé軞ã§ã®9 t 1åéã®éçè§£æã§ããããã³ãŒãã30åã§æžã人éãš30ç§ã§æžãAIãšã§ã¯âš ããã«ããã¯å ·åãæ®µéã t ããŒã«ãã§ã€ã³ã¯ããã·ãªã¢ã¹ã«é床ã«åãåãå¿ èŠããã
Speed is King Linter以å€ã«ãã»ã»Â d ã¯ã©ãŠãåãšãŒãžã§ã³ãã¯ã³ã³ããã«ããisolationãäž»æµ! d 1ãã£ããããšã«ã³ã³ãããäœx d âããã±ãŒãžãããŒãžã£ã®é床ãããã«ããÂ
d çç£éãçå¢ããããšã§ãããã€ã®æ©äŒãå¢ãx d âãã«ãïŒãã³ãã©ãŒïŒãããã«ãã d LLMãã³ãŒãã£ã³ã°ã®ã¿ã€ãã³ã°ïŒããŒã¯ã³çæããšïŒã«åã°ã©ãæ§Â d âåãã§ãã«ãŒãããã«ããã¯ïŒtsgoæé«ïŒïŒ TSãšã³ã·ã¹ãã ã¯ãã§ã«è¯ãæµãã«ä¹ã£ãŠããã®ã§æåŸ ã§ãã
Code Generation over Complex Puzzle 2 è€éãªåãšã©ãŒããã¯ãã¯ã¹ãã¢ã¯ã·ã§ã³ãå°ãã®ããããã( 2 ã³ãŒãçæã«å¯ãããšåãšã©ãŒãã·ã³ãã«ã«ããã( 2
ã³ãŒãçæãè€éæ§ã ããâãªããããããã£ããåçæããŠã¿ãâã¯æç
ç®æ¬¡ 1. åºæ¬çãªèãæ¹ 2. ã€ããŒããªã³ã°ã®ã¢ãããŒã 3. ãšã³ã·ã¹ãã ã®æªæ¥ 4. ãŸãšã
ãŸãšã é£ã³éå ·ã®åã«ãæ®éã®äººéãšå°ç¶ãã®ã€ããŒããªã³ã°ã§AIãèªèµ°ãããã7 5 話ãè¶³ããªãããšïŒããŒã¹ãæèŠªäŒã§è©±ããŸããã! 5 ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããåã¶ã¢ãŒããã¯ã0 5 LLMã«ããæ¢çŽ¢çãã¹ãïŒV.S. 決å®è«çãªå€å žçãã¹ãïŒ
ããããšãããããŸãã Ubieã®ããŒã¹ã«ããŸãïŒ