« 前のひとこと | トップページ | 次のひとこと »

cocolog:95490652

jrf_pdb_agent_lib の姉妹品として simplest-pal コマンドを作った。simplest-pal は、PDB (Python Debugger) を AI でラップする場合の「AI」の最もシンプルな実装。 (JRF 3145)

JRF 2025年6月13日 (金)

simplest-pal は、`pal.do` に current_code が指定されていれば `c` (continue) し、それ以外なら、単にデバッガの制御に移るだけのプログラム。

`--pal-quit-on-stop` というオプションもあり、デバッガに制御が移る必要が出てきたらそこで強制終了してしまうこともできる。その後、出力したログを本物の AI が調べるみたいなワークフローが考えられる。

JRF2025/6/136474

《JRF-2018/simplest-pal - The Simplest PDB Automation Layer for AI-Driven Debugging - GitHub》
https://github.com/JRF-2018/simplest-pal

「使える実装」になっているとは思うが、「コンセプト実装」レベルであることは認めざるを得ない。

jrf_pdb_agent_lib ともども、AI の発展に役立てばよいのだが…。

JRF2025/6/139219

……。

基本は Gemini 2.5 Flash さんに作ってもらったのだが、パッと出しはかなりバギーで、けっこう指示を出す必要があった。

特に Ctrl-c 周りでは苦戦して、Claude さんや ChatGPT さんにも相談したのだが解決しなかったところ Gemini 2.5 Pro さんがなんとか、解決してくれた。それまでスレッドを使った実装だったけど、スレッドレスな見通しの良い実装になった。

JRF2025/6/133755

その後、Gemini 2.5 Flash さんに Gemini 2.5 Pro さんの作ったコードを渡して、改善してもらおうとしたのだが、かたくなに自分のスレッドありのコードにこだわったため、会話をいったん打ち切って、しきり直しする必要があった。

しきり直しの後は、Flash さんも存分に働いてくれて、README.md の作成などもやってくれた。

いちおう、今回は特に、私のアイデアや苦労も結構入っている感じ。

JRF2025/6/135595

あと、途中、私が理想として、system 関数を使って python -m pdb を呼ぶような実装を頼んだのだが、(私が使っている) Windows の問題で、うまくいかず、Flash さんの初期構想のように、runpy を使う実装になった。

JRF2025/6/137373

……。

姉妹品 jrf_pdb_agent_lib の構想は↓にひとことがある。構想としては simplest-pal は jrf_pdb_agent_lib 構想の一部な感じ。

JRF2025/6/132157

[cocolog:95466253](2025年5月)
《AI エージェントはデバッガを好むのではないか? AI 専用デバッガ、またはデバッガを使うことが前提の agent ライブラリ(Python モジュール)の登場が待たれる。… pdb_agent_lib 構想。 - JRF のひとこと》
http://jrf.cocolog-nifty.com/statuses/2025/05/post-617bf0.html

JRF2025/6/133699

GitHub は↓。

《JRF-2018/jrf_pdb_agent_lib - A library for AI-driven debugging and human-AI collaboration using PDB. 》
https://github.com/JRF-2018/jrf_pdb_agent_lib

JRF2025/6/132521

……。

simplest-pal。とりあえずバージョン 0.0.1 の段階は、いろいろ実験中な感じで、今はバージョン 0.0.2 になっている。

JRF2025/6/135910

……。

追記。

更新: simplest-pal。バージョン 0.0.3。.apy に対応。example_*.py で textwrap.dedent を d_py として使用。将来を見越したコンセプト実装らしい変更かな。

JRF2025/6/142645

.apy は AI Python または Agent Python の略として、AI エージェントが変更しながら作っていくことを想定。ただの Python コードではなく、simplest-pal のような AI ラップしたデバッガで実行されることを想定していることを示す拡張子。…としたい。

JRF2025/6/147320

textwrap.dedent を d_py または d_md として使用するのは、次のような理由から。もし (jrf_)pdb_agent_lib が広く使われるようになるなら、current_code や order を dedent するのが普通になるのだと思うが、そのとき、読みやすいようにエディタでカラーがつくようになって欲しい。このとき dedent だけだとそれが示すのが何なのかわからない。そこで dedent を単に変名して d_py や d_md としてエディタに情報を渡すのを目的としている。

JRF2025/6/147954

……。

追記。

更新: simplest-pal。バージョン 0.0.4。将来的に心配だった冗長な部分を除去。あと Gemini 2.5 Flash さんに頼んでコメントとメッセージの改善。

JRF2025/6/142823

……。

追記。

更新: simplest-pal。バージョン 0.0.5。0.0.4 で削った部分に対応する冗長な部分をさらに除去。

JRF2025/6/141507

……。

追記。

更新: simplest-pal。バージョン 0.0.6。冗長な部分をさらに除去。

JRF2025/6/155198

……。

追記。

更新: simplest-pal。バージョン 0.0.7。冗長な部分を Gemini 2.5 Pro さんに手伝ってもらってさらに除去。

JRF2025/6/222157

……。

追記。

更新: simplest-pal。バージョン 0.1.0。少し安定したと判断し、バージョンナンバーを上げただけのリリース。中身は 0.0.7 と同じ。

JRF2025/6/260337

« 前のひとこと | トップページ | 次のひとこと »