jjyaoao/HelloAgents
A agent framework based on the tutorial hello-agents
HelloAgents – モジュール式マルチエージェントフレームワーク
何であるか – HelloAgents は、大規模言語モデル(LLM)の 関数呼び出し インターフェースを介して通信する マルチエージェント アプリケーションを構築できる Python ライブラリです。プロンプトを送信し、ツール呼び出しを受け取り、ツールを実行し、結果をフィードバックするループをはじめから用意済み。さらに、コンテキスト管理、リトリーバー拡張生成(RAG)、永続的メモリ、サブエージェント、スキル、ストリーミング出力、観測性といったオプション機能も提供しています。
主要なコンポーネント
- コア –
SimpleAgent、ReActAgent、ReflectionAgent、PlanSolveAgentは異なる推論パターンを実装。HelloAgentsLLMは OpenAI互換、Anthropic、Gemini プロバイダーを抽象化し、LLM_BASE_URLから自動的に適切なアダプタを検出します。 - ツールシステム –
ToolRegistryを通じてツール(例:電卓)を登録。組み込みツールにはファイル編集、タスク委任、開発ログ、RAG、メモリ、GraphRAG、権限、回路ブレーカーなどがあります。 - コンテキストエンジン – 会話履歴の管理、トークン予算、切り捨て処理を行い、モデルに送信する最終ペイロードを構築します。
- リトリーバーとメモリ – プラグイン可能なベクトルストア(Qdrant)、BM25、ハイブリッドランキング、再ランク、ユーザー固有の事実を保存する永続的「プロフィール」ストアをサポート。
- ランタイム – 非同期ループ、ストリーミング SSE 出力、複数モデル間での予算共有、セッションの永続化、バックグラウンドジョブを処理します。
導入方法
uv sync --lockedまたはpip install -r requirements.txtでインストール(Python 3.12–3.13)。- モデルID、APIキー、ベースURLを含む
.envファイルを定義。 - 必要なツールを登録し、
HelloAgentsLLMインスタンスを作成。その後SimpleAgentをインスタンス化し、agent.run(prompt)を呼び出します。
from hello_agents import SimpleAgent, HelloAgentsLLM, ToolRegistry
from hello_agents.tools import CalculatorTool
registry = ToolRegistry()
registry.register_tool(CalculatorTool())
with HelloAgentsLLM() as llm:
agent = SimpleAgent("assistant", llm, tool_registry=registry)
print(agent.run("2泊の宿泊費が1泊320元、交通費180元の合計予算を計算して"))
拡張性 – AgentComponents を通じて任意のオプションコンポーネント(例:RAGストア、メモリストア、サブエージェント)を追加可能。また、以下の機能もサポートしています:
- MCPブリッジ:外部ツール統合(stdio/HTTP)
- 回路ブレーカー および 権限 ポリシーによるツール実行のサンドボックス化
TraceLoggerを用いた観測性による実行トレース
ドキュメントと例 – リポジトリにはインストール、信頼性、ツール応答プロトコル、コンテキスト設計、RAG、GraphRAG、メモリ、サブエージェント、ストリーミングなど、完全なドキュメント階層と、各機能を示す豊富な examples/ フォルダが含まれています。単純な非同期エージェントデモから、完全な旅行アシスタントアプリまでをカバーしています。
コミュニティとバージョン
- 主な2つのブランチ:
learn_version(Datawhaleチュートリアルと同期)と現在のv1.0.1リリース。 - Go および TypeScript でのコミュニティポートがリンクされています。
- CC BY-NC-SA 4.0 ライセンス(非営利利用);商業利用は許可が必要です。
対象ユーザー – ツール使用、リトリーブ、メモリを備えた LLM ベースのエージェントを、すべてを自前で構築せずに、即時利用可能かつ高度にカスタマイズ可能なフレームワークで構築したい開発者向け。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト