nikkie-ftnextの日記

イベントレポートや読書メモを発信

「Agent Skill ってどう書くんだろう」と anthropics/skills の pdf を見たところ、Python で PDF 操作する知見の宝庫でした!

はじめに

七尾百合子さん、お誕生日 280日目 おめでとうございます! nikkieです。

急速に広まりつつある感のある Agent Skills について、どんなものか理解するのに時間を使いました1

目次

Agent Skills

10月に Anthropic が提唱

Claude の API や Claude Code などで、Skill なるものが使えるようになりました2

そして先日、Agent Skills は open standard となりました!

We're also publishing Agent Skills as an open standard.

agentskills.io

波が、来てる...🌊

anthropics/skills にある Claude の Pre-built スキル

Claude には Pre-built Agent Skills があります。

これらは Agents Skills の例のリポジトリに公開されています

どんな内容を書いているか気になったので、適当に選んで pdf スキルを読んでみました。

pdf スキルの SKILL.md

スキルの本体となるファイルです。
ref: https://agentskills.io/specification#skill-md-format

内容としては PDF Processing Guide が記載されています。
Python ライブラリ、できること、サンプルコードが並んでいます。

コマンドラインツール

他にもスキャンされた PDF は、pytesseractpdf2image で処理する4、など(Common Tasks 参照)

SKILL.md以外のファイル

reference.md: Advanced Reference

追加で pypdfium2 を紹介しています。

また、JavaScript のライブラリも紹介

  • pdf-lib
  • pdfjs-dist

SKILL.md で紹介したコマンドラインツール(poppler-utils, qpdf)、Python ライブラリ(pdfplumber, reportlab)の advanced なテクニックも紹介。
さらに「Performance Optimization Tips」もありました!

forms.md:PDF フォームを埋める手順書

PDF フォームを埋める方法について scripts/Python スクリプトを使った手順が示されています。

まず scripts/check_fillable_fields.py を実行。
出力により後続処理が分岐します。

This PDF has fillable form fields

This PDF does not have fillable form fields; you will need to visually determine where to enter data

Fillable fields の場合
  1. scripts/extract_form_field_info.py
  2. scripts/convert_pdf_to_images.py
  3. field_values.json 作成
  4. scripts/fill_fillable_fields.py (3の JSON でフォームを埋める)
Non-fillable fields の場合

終わりに

anthropics/skills の pdf スキルを眺めました。
Python で PDF を扱う知見が凝縮されていました。
ライブラリの紹介やサンプルコード、advanced なテクニックなど集められていました。

pdf スキルを装備した Claude を動かすのはこれからですが、必要なときにこの専門知識が読み込まれるというのは期待大です。
スキルの自作にあたっては、まずは凝縮した知識を渡してみようと思います。

キャッチアップの中で出会った一文、PDF スキルもまさにこれですね。

AnthropicのエンジニアがPowerPoint作成の最適解を徹底的に検証して、その知識をパッケージ化している。(「なぜSkillsが必要なのか」より)

Agent Skills は、人間が読んで専門知識を学んでもいい!!(仮説
私はめちゃめちゃ可能性を感じています!

P.S. こんな物好き、私しかいないようで、typo 修正プルリクチャンスがありました🙌


  1. 行けることになったこちらの予習でもありました
  2. https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview#where-skills-work
  3. Unstructured の実装を見ていて知っていました