AgentRun - AIエージェントをワークフロー化するDSL

Show HN: AgentRun: DSL to turn agents into Workflows

AgentRun - AIエージェントをワークフロー化するDSL

AgentRunは、既存のAIエージェントに繰り返し可能なワークフローを追加するDSLです。Jevによる型付き判断とエージェント呼び出しを組み合わせ、サポート対応やリサーチなどのタスクを自動化。ツール、モデル、権限、予算はアプリ側で管理でき、JSONまたはTypeScriptビルダーでワークフローを定義。Pi拡張で簡単に試せます。

AgentRunは、すでに動かしているエージェントのためのワークフロー言語です。
  1. speckzzz

    エッジにコストやエフォートの属性がなく、終了状態に報酬もないなら、グラフワークフローなんて役に立たない。そんなワークフローは、グラフを知っている人なら誰でも一発でバイブコーディングできてしまう。

    少し前、SDLCをハーネスツールの組み合わせとして表現することを考えた。エッジに重み(エフォート)、いくつかの状態に報酬を持つ有限状態機械としてね。目標は、タスクのキューをサブワークフローとしてモデル化し、最も価値のあるものを実装すること。マルコフ決定過程を使って、最小のコストとリスクで報酬を最大化できるアプローチを設計しようとした。仮想的には実装できる。でも、状態機械、スクリプト用のカスタムランタイム、エージェントループの制御、スーパーバイザーの制御メカニズムといった要素のせいで、頭に収めるのが本当に難しくなってしまう。さらに重み付けモデルをチューニングしなければならない。そのモデルは強化学習のモデルに似たものになり得る。たとえやり遂げたとしても、他の誰か一人にでも理解してもらうには、よほどの幸運が必要だろう。そしてそのプロジェクトはGitHubで星3から5くらいになる。なぜなら、それが何なのか、どう使うのかをほとんど誰も理解しないだろうから。

  2. JustFinishedBSG

    ワークフロー定義言語はどうあるべきか、といろいろ試しているところなので、これを研究してみます。

    今の自分のビジョン、そしてプロトタイプは、できるだけ「本物の」言語に近づけるべきだというものです。そうすればユーザーもエージェントも、どう使うか、どう機能するかをすぐに理解できます。

    つまり `pi` の場合、TypeScriptを使うということです。

    そしてUIは、できるだけAST/コードから導出され、そうきれいにできない部分については、最終的にUIを定義する小さなセマンティックヘルパーを追加します。

    たとえば「plan -> execute」はこうです:

    await flow.unroll(

    remaining.map(point => ({

    key: point.id,

    label: point.objective,

    })),

    async () => {

    for (const point of remaining) {

    await flow.item(point.id, async () =>

    await flow.agent(executePoint, {

    title: `Point ${point.id}`,

    prompt: point.objective,

    }));

    }

    },

    { title: `Plan r${planRevision}` },

    );

    (簡略化したコード)

    自分の実装ではこうで、`unroll` は、ただの「Plan · 1/3」という詳細のないUI(forループをそのまま使えばそうなる。もちろん動きはする)の代わりに、

    ● Plan r1 · 1/3 · active

    1. Inspect parser behavior

    ● 2. Add empty-input coverage

    ○ 3. Run focused checks

    という素敵なUIにするためだけに存在します。

  3. JonathanAgosto

    ¡Wepa Miguel! ¡Felicidades y mucho éxito con el release!

    おめでとう、そしてこのリリースがうまくいくことを願っています!

この日のほかの記事

2026-09-24