🫣

OpenAI Agent SDKのdocstringsがおかしい

に公開

最近Agentを真に理解しようとOpenAI Agent SDKのコードを読んでいる。
はじめ気づかなかったのだが、機能突然docstringsがおかしいことに気がついた

通常のdocstringsとの比較

これが通常のdocstrings

class Agent:
    """
    AI エージェントを表すクラス。

    Parameters
    ----------
    name : str
        エージェント名
    instructions : str | None
        システムプロンプト
    tools : list[Tool]
        利用可能なツール
    """

    def __init__(self,
                 name: str,
                 instructions: str | None = None,
                 tools: list["Tool"] | None = None):
        self.name = name
        self.instructions = instructions
        self.tools = tools or []

こっちがOpneAI Agent SDK形式のdocstrings

class Agent:
    """AI エージェントを表すクラス。"""

    name: str
    """エージェント名"""

    instructions: str | None = None
    """システムプロンプト"""

    tools: list["Tool"] = field(default_factory=list)
    """利用可能なツール"""

    def __init__(self,
                 name: str,
                 instructions: str | None = None,
                 tools: list["Tool"] | None = None):
        self.name = name
        self.instructions = instructions
        if tools is not None:
            self.tools = tools

通常のdocstirngはクラス定義の直下に記述するが、
フィールド直下にコメントを残していたのだ。

こんなに違うのに意外と気づかないもんだった。

なぜフィールド直下にコメントするのかの推測

Clineの記事になるがエディターに登載されたAIはRAGとの相性が悪いようだった。

https://cline.bot/blog/why-cline-doesnt-index-your-codebase-and-why-thats-a-good-thing

つまり、そのほかのコードの検索方法が必要で、それってなんなの?という話が自分の中に残っていた。

その残っていた疑問とこのdocstringsの記述が頭の中でつながり「!!!」っとなったのだった。

もうわかったと思うが、
これはAIが読みやすいようにこうしているのだと推測した。

OpenAIは本当にAIに仕事をさせている

先日「OpenAI Agent SDKもcodex使って開発してる」というのをXにポストした。

https://x.com/konumaruuu_v2/status/1925495106641285424

codexが発表された時に出た動画でも本当に開発メンバーの一員として扱っている様子を語っていた。

https://youtu.be/hhdpnbfH6NU?t=1240

まとめ

これ以上は推測の域をでないので、なぜそれがAIエディターにとって効率的なのかを考えるのはやめた。

これからAIをフル活用して開発をするなら最新の技術を作っている一次情報をインプットし続けることが重要であることは変わらないのでそれだけは続けようと思う。

関連資料

株式会社エクスプラザ

Discussion