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
3k
MCPãšãã¶ã€ã³ã·ã¹ãã ã«ç«èãããã¶ã€ã³ãšå®è£ ã®èå
yukukotani
6
2.4k
Scale out your Claude Code ~âšâ©èªç€Ÿå°çšAgentã§10xããéçºããã»ã¹~
yukukotani
10
4.7k
AI Coding Agent Enablement - ãšãŒãžã§ã³ããèªèµ°ãããã
yukukotani
14
8k
Expoã«ããã¢ããªéçºã®çŸåšå°ãšReact Server Componentsãåãéãæªæ¥
yukukotani
3
760
React 19ã§ãæè»œã«CSS-in-JSãèªäœãã
yukukotani
6
960
åãæãæã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ãšãŒãžã§ã³ãã®èšèšã§æ³šæããã¹ããã€ã³ã6éž
har1101
5
2.3k
ãŸã éã«åãïŒClaude Codeå 幎ããµãããã
nogu66
5
890
AI Agent Dojo ïŒ4: watsonx Orchestrate ADKäœéš
oniak3ibm
PRO
0
110
çæAIãå©çšããã ãã§ãªããæè³ã§ããçµç¹ãž
pospome
2
400
tparseã§go testã®åºåãèŠããããã
utgwkk
2
280
ãã«ãµã€ã¯ã«ãšã³ãžãã¢ãªã³ã°ãAI Agentã§å šèªååããã ãæ§æ³ãšçŸåšå°ã
kamina_zzz
0
280
Navigating Dependency Injection with Metro
l2hyunwoo
1
180
TerraformãšStrands Agentsã§Amazon Bedrock AgentCoreã®SSOèªèšŒä»ããšãŒãžã§ã³ããéç£ãããïŒ
neruneruo
4
1.7k
æããã翻蚳ã®ç§èš£
kishikawakatsumi
3
340
ããã¯ãšã³ããšã³ãžãã¢ã«ãã Amebaããã° K8s åºç€ãžã® CronJobã®å°å ¥ã»éçšçµéš
sunabig
0
170
Go ã³ãŒãããŒã¹ã®æ§æãš AI ã³ã³ããã¹ãå®çŸ©
andpad
0
140
Giselleã§äœãAI QAã¢ã·ã¹ã¿ã³ã ã Pull Requestã¬ãã¥ãŒã«ç¶ç¶çQAã
codenote
0
290
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
0
300
Deep Space Network (abreviated)
tonyrice
0
21
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
130
Designing for humans not robots
tammielis
254
26k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
980
Git: the NoSQL Database
bkeepers
PRO
432
66k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
340
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
17
Paper Plane (Part 1)
katiecoart
PRO
0
1.9k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
BBQ
matthewcrist
89
9.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
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ã®ããŒã¹ã«ããŸãïŒ