🦾
Function Callingだけで自然言語のタスクからコード自動生成 => 実行を実装してみた
目的
AI Agentが来る!的な流れがあるので、自前(+cursor)で簡易的なAI Agentを実装してみた。
使い古されたフレームワークとしてはLangchainなどあるが、Function callingの組み合わせても実装できるのでは?と思い、思いついたので実装。
以下リポジトリ
※docker等は使用していないので、安全な環境が用意できない方は実行しないことをお勧めします
1/2くらいの確率でpackageをinstallやコードの実行に失敗するが、実行コードの質の担保が目的ではないので良しとした。
賢い方(o1 Pro)による説明
- OpenAIのFunction Calling 機能とTypeScriptを連携させ、
「ユーザーがリクエストしたタスクを実行するためのツールを動的に生成・管理する」 一連の仕組みをデモするプロジェクトです。 - TaskManager → Executor → ToolManager の流れでタスクを捌き、ツールが無い場合には OpenAIが自動生成。
- 生成されたツールは generated-tools ディレクトリに保存され、即時に利用可能となる。
- 必要なnpmパッケージの検知・インストールも自動化している。
わかりやすい実行の流れ
実際のシーケンス図
詰まったところ
コードから必要なnpm packageの発見 + installの部分で、cursorによしなにやってもらおうとしたが、いまいち動かず...
自分で一つ一つロジックを定義して、やっと正しく動くようになった。
感想
ここから例えば
並列にしたい => Promise.allで多重実行する
タスクを分割して大きいタスクを実行したい => メモリーレイヤーを追加する
安全な環境で何度も実行する => docker、webcontainerで実行する
などを実装すればLangchainなどのAgentや他サービスに近付いていく手応えを得られた。
正月休みのうちに実装できてよかった!!!
Discussion