はじめに
ZeroGraphは、AIエージェントプログラミングのために設計された軽量なオープンソースフレームワークであり、TypeScriptで開発されています。ノード(Node)とフロー(Flow)のアーキテクチャをベースにしており、効率的なAIエージェントのワークフローを迅速に構築することができます。 ZeroGraphは、型安全性と強力なIDEサポートを提供しており、開発者が簡単な挨拶から複雑なマルチエージェントのコラボレーションタスクまで作成するのに適しています。このプロジェクトは、MITライセンスのもとでライセンスされており、例題が十分に文書化されており、簡単に始めることができるので、幅広い研究開発シナリオに適しています。
機能一覧
- ノードとフローのアーキテクチャ ノードクラスとフロークラスによるモジュール式タスク処理とフローオーケストレーション。
- 軽量設計 わずか300行のコードで、依存関係がなく、効率的に動作し、ベンダーロックインもありません。
- タイプセーフティ 完全な型チェックとIDEヒントを備えたTypeScriptネイティブサポート。
- バッチ対応 複数のデータをBatchNodeで処理することで、処理効率が向上します。
- ひどうきそうさ AsyncNodeのサポート。ネットワークリクエストなどの非同期タスクに適しています。
- プロキシプログラミング マルチエージェントコラボレーション、検索補強生成(RAG)などの複雑なワークフローをサポートします。
- 豊富な事例 挨拶、検索、マルチエージェント連携など、基本から応用までのサンプルコードを提供。
ヘルプの使用
設置プロセス
ZeroGraphはTypeScriptで開発されており、Node.jsとnpm/yarnをインストールする必要があります:
- 環境準備
- Node.js(16以上推奨)とnpm/yarnがインストールされていることを確認する。
- 環境を検証する:
node -v npm -v
- オプション:型チェックをサポートするためにTypeScriptをインストールする:
npm install -g typescript
- ZeroGraphのインストール
インストールにはnpmを使用する:npm install @u0z/zero-graph
あるいは毛糸を使う:
yarn add @u0z/zero-graph
- インストールの確認
単純なTypeScriptファイル(例えばtest.ts
を参照)、以下のコードを実行する:import { Node, Flow } from '@u0z/zero-graph'; console.log("ZeroGraph installed successfully!");
コンパイルして実行する:
tsc test.ts node test.js
成功メッセージが出力されれば、インストールは正しく行われたことになる。
主な機能
1.ノードとフロー
ZeroGraphの中心はNodeとFlowで、Nodeは1つのタスクを処理し、Flowは複数のノードをオーケストレーションする。ステップ
- ノードの定義 継承の作成
Node
クラスを含むprep
(データを準備する)、exec
(実行ロジック)とpost
(結果を保存する) メソッドを使用します。例
import { Node, Flow } from '@u0z/zero-graph';
class GreetingNode extends Node {
prep(shared: any): string {
return shared.name || 'World';
}
exec(name: string): string {
return `Hello, ${name}!`;
}
post(shared: any, prepRes: string, execRes: string): void {
shared.greeting = execRes;
}
}
- ストリームの作成 ノードをFlowに接続して実行する:
const flow = new Flow(new GreetingNode());
const shared = { name: 'TypeScript' };
flow.run(shared);
console.log(shared.greeting); // 输出: Hello, TypeScript!
2.バッチ処理
BatchNodeは複数のデータを処理するのに適しています。操作ステップ
- バッチノードの定義 ::
class BatchProcessor extends BatchNode {
exec(item: any): any {
return `Processed: ${item}`;
}
}
- バッチストリームの実行 ::
const batchFlow = new BatchFlow(new BatchProcessor());
const items = ['item1', 'item2', 'item3'];
batchFlow.run(items).then(results => console.log(results));
3.非同期操作(Asyncサポート)
AsyncNodeはAPIコールなどの非同期タスクをサポートします。操作手順
- 非同期ノードの定義 ::
class AsyncProcessor extends AsyncNode {
async execAsync(input: any): Promise<any> {
return new Promise(resolve => setTimeout(() => resolve(`Processed: ${input}`), 1000));
}
}
- 非同期ストリームの実行 ::
const asyncFlow = new AsyncFlow(new AsyncProcessor());
const shared = { input: 'test' };
asyncFlow.runAsync(shared).then(() => console.log(shared.result));
4.マルチエージェントコラボレーション
ZeroGraphはマルチエージェントワークフローをサポートします。操作ステップ:
- 複数ノードの定義 異なるタスクを処理するために複数のノードクラスを作成します。
- 接続ノード スルー
next
メソッドは、ノード間のジャンプ・ロジックを指定する:
class NodeA extends Node {
exec(input: any): string {
return input ? 'success' : 'error';
}
}
class NodeB extends Node {
exec(input: any): string {
return 'Task B done';
}
}
const nodeA = new NodeA();
const nodeB = new NodeB();
nodeA.next(nodeB, 'success');
const flow = new Flow(nodeA);
flow.run({ input: true });
5.サンプルコードの使用
ZeroGraphは、次のような豊富な例を提供しています。 examples/
カタログ操作手順:
- クローン倉庫 ::
git clone https://github.com/u-0-z/zero-graph.git
cd zero-graph
- 実行例 アクセス
examples/
ディレクトリで特定のサンプルを実行する:
cd examples/hello-world
npm install
ts-node index.ts
- 例えば、基本的な挨拶(hello-world)、検索エージェント(agent)、コンテンツ生成(workflow)、バッチ処理(batch)、非同期操作(async)、検索強化生成(rag)、マルチエージェント連携(multi-agent)などがある。
ほら
- TypeScriptの設定 プロジェクトに以下が含まれていることを確認する。
tsconfig.json
推奨設定
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"strict": true
}
}
- 文書アクセス 完全なドキュメントは以下にあります。
docs/
コアコンセプト、デザインパターン、APIリファレンスを網羅したカタログ。 - 地域支援 問題が発生した場合は GitHub Issues を確認するか、新しい issue を送信してください。
アプリケーションシナリオ
- AIエージェントのラピッドプロトタイピング
ZeroGraphの軽量設計は、AIエージェントの迅速なプロトタイピングに適している。例えば、開発者はウェブAPIを組み合わせてリアルタイムの情報検索を可能にする検索エージェントを作ることができる。 - 自動化されたワークフロー
コンテンツ生成やデータ処理のシナリオでは、ZeroGraphは、記事の自動生成やバルクデータの処理など、マルチノードのワークフローをオーケストレーションする。 - 教育・研究
学生や研究者はZeroGraphを使ってTypeScriptとAIエージェントプログラミングを学ぶことができ、教育や実験に適したサンプルコードも用意されている。
品質保証
- ZeroGraphとLangChainの違いは何ですか?
一方、LangChainはより複雑でコード量も多く(405K行)、大規模なプロジェクトに適しているが、パフォーマンスのオーバーヘッドがある。 - TypeScriptの経験が必要ですか?
JavaScriptの基本的な知識があれば十分であり、TypeScriptの型安全性機能はIDEによって自動的にプロンプトが表示されるため、学習曲線が短縮される。 - 自分のコードをデバッグするには?
VS CodeなどのIDEとTypeScriptデバッグツールを併用する。実行ts-node
コードを実行し、コンソール出力またはログを見る。 - どのような複雑な作業がサポートされるのか?
マルチエージェントコラボレーション、検索機能付きジェネレーション(RAG)、検索やコンテンツ生成などのシナリオのための非同期ワークフローをサポートします。