AgentEra/Agently

[GenAI Application Development Framework] 🚀 Build GenAI application quick and easy 💬 Easy to interact with GenAI agent in code using structure data and chained-calls syntax 🧩 Use Event-Driven Flow *TriggerFlow* to manage complex GenAI working logic 🔀 Switch to any model without rewrite application code

Agently – 本番運用に対応した AI アプリケーションランタイム

概要 – 構造化され、観測可能で、再起動安全な方法で AI ベースのサービス(アシスタント、コパイロット、ワークフロー API など)を構築するための Python ライブラリです。大規模言語モデルとビジネスコードの間に位置し、単一のモデル呼び出しをフル機能のランタイムユニットに変換します。

  • 型付きリクエスト/レスポンス契約 – 期待する JSON スキーマを .output(...) で事前に宣言します。フレームワークがバリデーション、再試行、フィールド抽出を行います。
  • 部分的な構造でのストリーミング – instant モードは各フィールドが満たされるたびにイベントを発行するため、UI や下流のワークフローが応答完了前に反応できます。
  • アクション/ツール – 関数(Python、シェル、Node、SQLite、MCP サーバー、サンドボックスランタイム)が Actions として登録され、モデルが呼び出せるようになります。完全なログと観測可能性を備えます。
  • スキル – 不変でバージョン管理されたガイダンススニペットで、モデル内部に隠すことなく実行に添付できます。
  • 実行リソース – 再利用可能なランタイム環境(ブラウザ、サンドボックス、gVisor など)で、遅延起動されワークフローが所有します。
  • TriggerFlow オーケストレーション – シグナル駆動のワークフローエンジンで、一時停止/再開、サブフロー、イベントファンアウト、永続スナップショットをサポートします。
  • 動的タスク – モデル生成の DAG データを検証済みで観測可能なタスクグラフに変換します。

対象読者 – 信頼性の高い AI サービスを構築するプロダクトエンジニア、モデルプロバイダーやツールの明確な拡張ポイントを必要とするプラットフォームチーム、およびアドホックなプロンプトの接着ではなく明示的な契約とデバッグ可能な実行を求めるテクニカルリード。

主要コンセプト

コンセプト 役割 README の例
AgentExecution 単一のモデル呼び出し、そのプロンプトスロット、選択されたアクション/スキル、および結果データを所有するランタイムユニット。 agent.input(...).output(...).get_result()
構造化リクエスト 名前付きスロットから構築されたプロンプト。出力スキーマは .output({"field": (type, description, required)}) で宣言。 agent.role(...).info(...).instruct(...).input(...).output({...})
インスタントストリーミング モデルがまだトークンを生成している間に event.path の更新を発行し、UI 更新やワークフローシグナルを可能にします。 for event in result.get_generator(type="instant"):
アクション モデルが要求できる呼び出し可能オブジェクト(Python、シェル、Node、MCP など)。ログは実行結果に添付されます。 @agent.action_func def calculate_total(...):
スキル バージョン管理されたガイダンスライブラリで、それ自体は実行されずに実行にバインドできます。 Agently.skills_executor (読み取り専用)
実行リソース ワークフローの存続期間中存続する管理された外部ランタイム(ブラウザ、サンドボックス、gVisor、SQLite)。 Execution Resource providers manage reusable resources such as MCP processes, browser sessions…
TriggerFlow イベント駆動のワークフローエンジンで、一時停止/再開、サブフロー、永続スナップショットをサポート。 TriggerFlow supports events, fan-out, runtime streams, pause/resume, save/load…
動的タスク モデル生成の DAG データを、ステップバイステップで実行できる検証済みのタスクグラフに変換します。 Agently.create_dynamic_task(...)

使用方法 (README のクイックスタート)

  1. インストール – pip install -U agently。
  2. モデルプロバイダーを設定 – 例: DeepSeek またはローカルの Ollama エンドポイントを Agently.set_settings("OpenAICompatible", {...}) で設定。
  3. エージェントを作成 – agent = Agently.create_agent()。
  4. プロンプトと出力スキーマを宣言 – .role()、.info()、.input()、.output({...}) をチェーン。
  5. 実行 – .get_result() (または非同期バリアント) を呼び出して、get_data(), get_text() などを持つ AgentExecutionResult を取得。
  6. アクション/スキルを追加 – @agent.action_func で Python 関数を登録するか、組み込みヘルパー (agent.enable_python(), agent.enable_shell(), …) を有効化。
  7. オーケストレーション – 長期間実行されるシグナル駆動ワークフローには TriggerFlow または Dynamic Task API を使用。

代替手段よりも Agently を選ぶ理由

  • 統一された契約 – モデルプロバイダーを切り替えてもビジネスロジックを書き直す必要はありません。同じ .output スキーマ、アクションログ、スキルバインディングが維持されます。
  • 組み込みの観測可能性 – アクションは構造化ログを生成し、ストリーミングイベントが公開され、フレームワークはデバッグ用の開発ツールを提供します。
  • 本番対応機能 – 再試行対応の出力解析、一時停止/再開のワークフロースナップショット、リソースライフサイクル管理、明示的なエラーハンドリング。
  • 焦点を絞ったスコープ – LangChain の巨大な統合サーフェスとは異なり、Agently はリクエスト/レスポンス契約、ツール実行、シグナル駆動のオーケストレーションに集中しており、多くの本番チームが保守しやすいと感じています。

詳細情報 – ドキュメントサイト (https://agently.tech/docs)、詳細なリリースノートの Markdown ファイル、および examples/ ディレクトリ(基本的な使用法、FastAPI サービス、アクションランタイム、トリガーフロー、動的タスクなど)。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト