1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pengent: 軽量・高性能なAIエージェントフレームワークをご紹介

Last updated at Posted at 2025-09-16

Pengent: 軽量・高性能なAIエージェントフレームワークをご紹介

まもなくリリース$ソース公開予定!!

🐧 Pengentとは?

Pengentは、LangChainライクな軽量フレームワークで、複数のLLM(OpenAI, Claude, Gemini, OpenRouterなど)を同じインターフェースで利用できるライブラリです。
由来は Linuxのペンギン(Tux) + AIエージェント を掛け合わせたものです。

log.png

特徴は以下の通りです:

  • LangChainより軽量で高性能
  • LLMとルールベースのハイブリッド構築が可能
  • バックエンド・フロントエンドを含めた「すぐ使える基盤」
  • 50種類以上の標準ツールと専門エージェントを搭載

🚀 強み

  • 軽量 × 高性能:LangChainよりも扱いやすい
  • 実務寄りのプリセット:すぐに役立つツール&エージェント
  • カスタマイズ性:独自要件に合わせたエージェントを簡単に構築可能
  • 拡張性:MCP、バッチ処理、外部サービス連携をサポート

💡 ユースケース

  1. 業界情報の自動収集・解析・発信

    • ニュース収集 → AI要約 → 各プラットフォームへ配信
  2. AIヘルプデスク

    • ドキュメント/ソース解析 → RAG活用 → FAQ・問い合わせ対応
  3. タスクアシスタント

    • Slack, Redmine, GitHub Issuesと連携
    • 通知・FAQ回答・チケット作成
  4. 本格的なチャットアプリ基盤

    • 認証、DB、APIを備えたバックエンド
    • チャット+プロジェクト管理UI
  5. エージェントオーケストレーション

    • Task Runnerで複数エージェントを連携
    • ニュース収集 → 要約 → 翻訳 → 発信などを自動化

Pengentの主な構成

主な機能を紹介

LLM統合

  • OpenAI, Claude, Gemini, OpenRouter を同じインターフェースで利用可能
  • モデル切替やパラメータ調整が容易
  • バッチリクエスト対応(OpenAI社、Anthropic社ならば半額)

サンプルコード

    llm_client = LLMOpenAIClient(
        model_name="gpt-4.1-mini",
        temperature=0.3,
        config={
            "is_output_file": False,
            "max_tokens": 200,
            "system_prompt": "\n".join([
                "あなたは優秀な窓口案内です。",
                "わかりやすく、自然な日本語で丁寧に説明してください。",
                "誤字や不自然な表現を避け、短めにまとめてください。"
            ]),
        }
    )
    res = llm_client.request(prompt="富士山はどこの県にありますか?")
    print(res.content)

    llm_client = LLMGeminiClient(
        model_name="gemini-2.5-flash-lite",
        temperature=0.3,
        config={            
            "is_output_file": False,
            "is_auto_setup": True,
            "max_tokens": 500,
            "system_prompt": "\n".join([
                "あなたは優秀な窓口案内です。",
                "わかりやすく、自然な日本語で丁寧に説明してください。",
                "誤字や不自然な表現を避け、短めにまとめてください。"
            ]),
        }
    )
    res = llm_client.request(prompt="富士山はどこの県にありますか?")
    print(res.content)

ツール & MCP連携(50+)

  • Web検索
    • WEB検索, WEB解析,PDF読み込み,RAG登録
  • ソース管理、コード解析
    • Git管理,リポジトリ解析(Github, Gitea)
  • コード実行
  • メッセージ通知
    • Redmine,Slack,RocketChat,Mattermost,Line,Git Issues
  • ストレージ連携
  • 翻訳
  • データベース接続
  • コンテンツ生成
  • MCPを通じた外部サービス連携

エージェント

  • 汎用エージェント(チャット、QAなど)
  • 専門エージェント(ヒアリング、コンテンツ生成、システムデザイン、FAQ対応)
  • 独自エージェントも簡単に作成可能
    • モデルの設定
    • プロンプトカスタマイズ
    • ツール/MCPの組み込み
    • パラメータ調整
  • ルールベースによりエージェントを制御可能
agent = AgentCoder()
agent.set_tools(is_tools_call=False)
agent.run()
output:AgentSendOutput = agent.send("""
C#の配列の使い方を教えて欲しいです。
サンプルコードを書いてください。
"""    )
logger.debug(output)

Task Runner

  • 複数エージェントをオーケストレーションが可能
  • ワークフローを定義し、要件に応じた処理を自動化
  • 複数メッセージ管理を実現
    • Historyメモリ
    • 要約メモリ
    • RAGメモリ

バックエンドコア機能構築

  • リクエスト・タスク管理機能
  • 外部データベース連携(RDB,インメモリ,NoSQL)
  • ルーティング機能(エージェントの切り替え)
    • リクエストのパス、パラメータによる切替
    • メッセージによりルールベースでの切替
    • LLM(ナビゲータエージェント)の判断による切替

🔭 今後の展望

OSSとしてコードを公開する予定です

  • 従来型AI(機械学習・ディープラーニングモデル)との統合
  • 外部サービス連携のさらなる拡充
  • より柔軟なワークフロー
  • 開発者コミュニティとエコシステムの拡大

開発者: Ryoh (https://ryho-ya-porfolio.netlify.app/)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?