Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cline、めっちゃ便利、お金が飛ぶ💸
Search
iwamot
PRO
March 28, 2025
Technology
22
21k
Cline、めっちゃ便利、お金が飛ぶ💸
2025-03-28
ENECHANGE I/O Day アウトプット大会(社内イベント)
iwamot
PRO
March 28, 2025
Tweet
Share
More Decks by iwamot
See All by iwamot
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
230
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
940
名単体テスト 禁断の傀儡(モック)
iwamot
PRO
1
470
クォータ監視、AWS Organizations環境でも楽勝です✌️
iwamot
PRO
2
470
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
PRO
3
1.2k
始めないともったいない!SLO運用で得られる3つのメリット
iwamot
PRO
1
150
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
PRO
3
8k
効率的な技術組織が作れる!書籍『チームトポロジー』要点まとめ
iwamot
PRO
2
370
AWS⼊社という選択肢、⾒えていますか
iwamot
PRO
2
1.4k
Other Decks in Technology
See All in Technology
CDK Toolkit Libraryにおけるテストの考え方
smt7174
1
550
サービスを止めるな! DDoS攻撃へのスマートな備えと最前線の事例
coconala_engineer
1
180
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
400
TLSから見るSREの未来
atpons
2
310
第64回コンピュータビジョン勉強会「The PanAf-FGBG Dataset: Understanding the Impact of Backgrounds in Wildlife Behaviour Recognition」
x_ttyszk
0
240
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
3
1.5k
[SRE NEXT 2025] すみずみまで暖かく照らすあなたの太陽でありたい
carnappopper
2
470
ゼロから始めるSREの事業貢献 - 生成AI時代のSRE成長戦略と実践 / Starting SRE from Day One
shinyorke
PRO
0
110
Figma Dev Mode MCP Serverを用いたUI開発
zoothezoo
0
230
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
520
LIXIL基幹システム刷新に立ち向かう技術的アプローチについて
tsukuha
1
380
本当にわかりやすいAIエージェント入門
segavvy
1
260
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Making Projects Easy
brettharned
116
6.3k
Automating Front-end Workflow
addyosmani
1370
200k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
KATA
mclloyd
30
14k
Adopting Sorbet at Scale
ufuk
77
9.5k
Agile that works and the tools we love
rasmusluckow
329
21k
Six Lessons from altMBA
skipperchong
28
3.9k
Transcript
Cline、めっちゃ便利、お金が飛ぶ 2025-03-28 ENECHANGE I/O Day アウトプット大会(社内イベント) CTO室 岩本隆史
こんな話をします 1. Clineとは 2. 実施した初期設定 3. リファクタリングに使った結果 4. 所感 2/25
Clineとは
VS Codeの拡張機能で使えるAIアシスタント https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev 4/25
チャットでコーディング。Planで計画、Actで実行 5/25
いろんなプロバイダ、モデルが選べる 6/25
AIのやりたいことを自動承認できる 7/25
実施した初期設定
全体設定 モデル → PlanもActも、Amazon Bedrock / Claude 3.7 Sonnet(拡張思考なし) 自動承認
→ ファイル参照のみ許可 Memory Bank → 「Custom Instructions」をドキュメントどおり設定 セッションをまたいでコンテキストを維持できる https://docs.cline.bot/improving-your-prompting-skills/custom-instructions- library/cline-memory-bank 9/25
プロジェクト設定 memory-bank/ → ドキュメントどおり作成 https://docs.cline.bot/improving-your-prompting-skills/custom-instructions- library/cline-memory-bank cline_docs/projectBrief.md → ドキュメントを参考にChatGPTで作成 https://docs.cline.bot/getting-started/getting-started-new-coders/our-favorite-
tech-stack#example-project-brief .clineignore → .gitignoreをコピーして微調整 https://docs.cline.bot/improving-your-prompting-skills/prompting#clineignore- file-guide 10/25
initialize memory bank → $2.1170 memory-bank/ ├── .clinerules ├── activeContext.md
├── productContext.md ├── progress.md ├── projectbrief.md ├── systemPatterns.md └── techContext.md 11/25
.clinerules を作成 → $0.7450 プロジェクト固有のガイドライン https://docs.cline.bot/getting-started/getting-started-new-coders/our-favorite-tech- stack#clinerules-template のサンプルテンプレートを見せ、Clineで作成 12/25
リファクタリングに使った結果
タスク: iwamot/collmbo のモジュール分割 app/litellm_ops.py の関数について、litellmライブラリに依存しているものとそ うでないものが混在していると思います。 認知負荷を下げたいので、litellmに依存していない関数を、別のモジュールに移 動してください。 移動先のモジュール名については、移動対象の関数の責務を考慮して、適切なも のを考えてください。
これはリファクタリングです。アプリケーション全体の挙動は変更しないようご 注意ください。 14/25
Clineの回答 #1 リファクタリング計画: litellm_ops.py の分割 litellm_ops.py を分析した結果、以下の関数はlitellmライブラリに依存していな いことがわかりました: format_litellm_message_content -
文字列操作とslack_to_markdownの呼び出 しのみ format_assistant_reply - 文字列操作とmarkdown_to_slackの呼び出しのみ build_system_text - 文字列操作とslack_to_markdownの呼び出しのみ これらの関数は主にメッセージのフォーマット処理を担当しており、litellmライ ブラリに依存していません。 15/25
Clineの回答(つづき) 移動先モジュール名の提案 これらの関数の責務を考慮すると、適切な移動先モジュール名は message_formatting.py だと考えます。理由は: これらの関数はすべてメッセージのフォーマット処理に関連している Slackとマークダウン間の変換や、表示用のテキスト整形を行っている 名前が機能を明確に表している 16/25
Clineの回答(つづき) 実装計画 新しいファイル app/message_formatting.py を作成 上記3つの関数を litellm_ops.py から message_formatting.py に移動
litellm_ops.py で message_formatting.py からこれらの関数をインポート 既存のインポート文を適切に調整 テストが正常に動作することを確認 この変更により、コードの責務がより明確に分離され、認知負荷が軽減されま す。litellm_ops.pyはlitellmに関連する操作に集中し、message_formatting.pyはメ ッセージのフォーマット処理に特化します。 17/25
追加の指示を3つ はい、問題ないです。ただし、最後に ./validate.sh を実行し、エラーが出ないこ とを確認してください。エラーが出た場合は修正を検討してほしいですが、難し い場合は私に相談してください。 方向性はOKです。format_litellm_message_content、format_assistant_reply、 build_system_text に依存しているファイルが他にもあるかもしれないので、呼び 出し元はすべてimport文を修正してくださいね。
すでに考慮されているかもしれませんが、tests/litellm_ops_test.py ではなく tests/message_formatting_test.py に移動すべきテストケースもあるかもしれませ ん。必要に応じて、合わせてご対応ください。 18/25
タスク完了 → $4.1667 https://github.com/iwamot/collmbo/pull/80 でマージ 19/25
コスト:初期設定430円、リファクタリング625円 タスク USD JPY initialize memory bank 2.1170 318 .clinerules
作成 0.7450 112 リファクタリング 4.1667 625 update memory bank (参考) 3.1133 467 20/25
所感
めっちゃ便利 VScode + Cline + Claude 3.7 sonnet によるコーディング体験は個人的には1996 年のインターネットに近いものを感じた。これが無い時代にはもう戻らない。
https://x.com/nappa/status/1897441076094623787 22/25
お金が飛ぶ Cline + VS Code + Claude 3.7 Sonnet で、自分の使い方だと時給
500 円くらいの AI という感じ。ほっといて勝手に作業してくれるので、悪くない。移行系とかリ ファクタリングとかメモリーリーク調査とか、コードレビューを時給 500 円でや ってもらうという感じ。 https://x.com/voluntas/status/1894599131391562030 23/25
対策1:PlanをDeepSeek-R1に変更 モデル 1,000トークンの入力 ($) 1,000トークンの出力 ($) Claude 3.7 Sonnet 0.003
0.015 DeepSeek-R1 0.00135 0.0054 2025年2月時点では、ClineもDeepSeek-R1を推している https://docs.cline.bot/getting-started/model-selection-guide#best-models-by-mode-plan- or-act 24/25
対策2:プロンプトキャッシュを利用(申請中) https://aws.amazon.com/jp/bedrock/prompt-caching/ 25/25