
2026/03/26 2:10
**Show HN:Optio – Kubernetes 上で AI コーディングエージェントをオーケストレーションし、チケットからプルリクエストへ自動変換** - **概要** Optio は Kubernetes クラスター内で AI を活用したコーディングエージェントを実行し、チケットを完結したプルリクエストに自動的に変換します。 - **主な機能** - *チケット取り込み* – あなたの課題追跡システム(Issue Tracker)から作業項目を取得。 - *エージェントオーケストレーション* – ワークロードに応じて K8s 上でエージェントを起動・スケール。 - *エンドツーエンド自動化* – コード生成から自動テスト、リント、PR 作成まで一連の流れを自動化。 - *拡張可能なプラグイン* – 必要に応じてカスタムツールや CI/CD フックを追加可。 - **重要性** ボイラープレートコード作成の手間を削減し、機能リリース速度を向上させるとともに、完全にテスト済みでレビュー可能なコミットのみがリポジトリに残るようにします。 - **試してみるには** 1. Optio オペレーターをクラスターへデプロイ。 2. チケットソース(例:Jira、GitHub Issues)を設定。 3. YAML でエージェント仕様を定義。 4. チケットが自動的に PR に変換される様子を観察。 - **参加方法** - ソースコード: <https://github.com/optio-ai/optio> - ドキュメント & 例: <https://docs.optio.ai> - コミュニティディスカッション: <https://forum.optio.ai> AI エージェントを CI/CD パイプラインに導入したい方は、ぜひフォーク・貢献するか、コメントでご質問ください!
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Optioは、コーディングタスクを最小限の人間介入で完全にマージされたプルリクエストへ変換する、自律的なAI駆動型プラットフォームです。開発者は手作業で作業を提出したり、一クリックでGitHub Issueを割り当てたり、Linearチケット経由で提出したりできます;各タスクは実行のためにキューに入れられます。
すべてのリポジトリについて、Optioは専用のKubernetes Podを起動し、その中で隔離されたgit worktreeを走らせ、選択されたAIエージェント(Claude CodeまたはOpenAI Codex)をホストします。システムは30秒ごとにCIステータス、レビュー状態、およびマージ準備状況をポーリングし、自動的に失敗や競合、レビューコメントを再試行または解決します。
すべてのチェックがパスし、承認が得られた場合、OptioはPRをスクワッシュマージし、関連するIssueをクローズし、Next.jsダッシュボードにライブログ、パイプライン進捗、コスト分析、クラスターヘルス、およびタスク詳細を更新します。別のコードレビューサブタスクエージェントがリポジトリごとに自律的なフィードバックループを処理し、モデル選択、カスタムプロンプト、コンテナイメージで構成可能です。
バックエンドはFastify APIサーバーをベースにBullMQワーカー、PostgreSQL 16(永続化)、Redis 7(ジョブキューとpub/sub)を使用し、すべてKubernetes上でオーケストレーションされています。プロダクションデプロイメントはHelmチャートを通じて管理され、外部データベース/Redis、Ingress設定、OAuthプロバイダー、およびリソース制限をサポートします。
モノレポはTurborepo + pnpmで構成されており、パッケージには共有型定義、コンテナランタイム、エージェントアダプター(Claude Code/Codex)、およびチケットプロバイダー(GitHub Issues、Linear)が含まれます。ローカルでのクイックスタートセットアップはDocker Desktop with Kubernetes、Node 22+、pnpm 10+が必要で、Postgres/Redisをブートストラップし、エージェントイメージをビルドして開発サーバーを起動するスクリプトがあります。
OptioはMITライセンスの下でリリースされており、明確なCONTRIBUTING.mdガイドを通じてコミュニティからの貢献を歓迎しています。
本文
AI コーディングエージェントのワークフローオーケストレーション – タスクから統合 PR まで
Optio はコーディングタスクを人手なしでマージ済み Pull Request に変換します。
タスク(手動、GitHub Issue から、または Linear から)を提出すると、Optio が残りを処理:隔離された環境のプロビジョニング、AI エージェント実行、PR の作成、CI 監視、コードレビュー開始、自動修正失敗時の再試行、すべてが合格したらマージ。
差分ループこそが特徴です。CI が失敗するとエージェントは自動で失敗コンテキストを持って再開します。レビュアーが変更要求を出すと、エージェントはレビューコメントを拾い上げて修正プッシュします。すべて合格したら PR は squash でマージされ、Issue が閉じられます。作業内容を説明するだけで Optio が完了まで推進します。
ダッシュボード
稼働中のエージェント、Pod 状態、コスト、最近のアクティビティをリアルタイムで表示。
タスク詳細
パイプライン進捗、PR トラッキング、コスト内訳とともにエージェント出力をライブ配信。
動作概要
| ステージ | アクション |
|---|---|
| タスク作成 | GitHub Issue / 手動タスク / Linear チケット |
| リポジトリ Pod のプロビジョニング | 隔離された Kubernetes Pod に git worktree を作成 |
| AI エージェント実行 | Claude Code / Codex がプロンプト、モデル、設定で実行 |
| PR 開設 | エージェントが Pull Request を作成 |
| CI & レビュー監視 | 30 秒ごとにステータスをポーリングしマージ準備状態を確認 |
| フィードバックループ | CI が失敗 → 失敗コンテキストでエージェント再開;レビューが変更要求 → フィードバックでエージェント再開 |
| マージ | CI 合格かつ PR 承認後、squash マージして Issue を閉じる |
タスク受け付け
タスクは以下から取得されます:
- Web UI(ワンクリック割り当て)
- GitHub Issues
- Linear チケット
プロビジョニング
Optio はリポジトリに対して Kubernetes Pod を検索または作成し、隔離用 git worktree を生成します。
実行
AI エージェントは設定済みプロンプト・モデル・パラメータで実行されます。
PR ライフサイクル
Optio は 30 秒ごとに PR をポーリングし、CI ステータス、レビュー状態、マージ準備状況を確認します。
フィードバックループ
CI の失敗、マージコンフリクト、レビューからのフィードバックが自動でエージェントへ渡り再開されます。
完了
PR が squash マージされ、関連 Issue が閉じられ、コストが記録されます。
主な機能
- 自律的フィードバックループ – CI 失敗・マージコンフリクト・レビューコメントで自動再開し、すべて合格すると自動マージ。
- Pod‑per‑repo アーキテクチャ – リポジトリごとに長寿命 Pod を使用し、git worktree で隔離。複数 Pod のスケールアウト・アイドル時のクリーンアップを実現。
- コードレビューエージェント – サブタスクとして独自プロンプト・モデルでレビューエージェントを起動。
- リポジトリ単位設定 – モデル、プロンプトテンプレート、コンテナイメージ、同時実行制限、セットアップコマンドなどをリポジトリごとに調整可能。
- GitHub Issues & Linear 受け付け – UI またはチケット同期で Optio に Issue を割り当て。
- リアルタイムダッシュボード – ログストリーミング、パイプライン進捗、コスト解析、クラスタヘルスを可視化。
アーキテクチャ
┌───────────────┐ ┌────────────────────┐ ┌───────────────────────────┐ │ Web UI │────→│ API Server │────→│ Kubernetes │ │ Next.js │ │ Fastify │ │ │ │ :3100 │ │ │ │ ┌── Repo Pod A ───────┐ │ │ │←ws──│ Workers: │ │ │ clone + sleep │ │ │ Dashboard │ │ ├─ Task Queue │ │ │ ├─ worktree 1 ⚡ │ │ │ Tasks │ │ ├─ PR Watcher │ │ │ ├─ worktree 2 ⚡ │ │ │ Repos │ │ ├─ Health Mon │ │ │ └─ worktree N ⚡ │ │ │ Cluster │ │ ├─ Ticket Sync │ │ └─────────────────────┘ │ │ Costs │ │ │ │ ┌── Repo Pod B ───────┐ │ │ Issues │ │ Services: │ │ │ clone + sleep │ │ │ │ │ ├─ Repo Pool │ │ │ └─ worktree 1 ⚡ │ │ │ │ │ ├─ Review Agent │ │ └─────────────────────┘ │ │ │ │ └─ Auth/Secrets │ │ │ └───────────────┘ └─────────┬──────────┘ └───────────────────────────┘ │ ⚡ = Claude Code / Codex ┌──────┴──────┐ │ Postgres │ Tasks, logs, events, secrets, repos │ Redis │ Job queue, pub/sub, live streaming └─────────────┘
タスクライフサイクル(テキスト図)
INTAKE ├─ GitHub Issue → QUEUED ├─ Manual Task → QUEUED └─ Ticket Sync → QUEUED EXECUTION ├─ PROVISIONING → RUNNING │ → agent writes code in worktree │ └──────┬─────────┘ FAILED (auto‑retry if stale) ←─ PR OPENED │ ├─ PR WATCHER polls every 30s FEEDBACK LOOP ├─ CI fails? → Resume agent to fix build ├─ Merge conflicts? → Resume agent to rebase ├─ Review requests? → Resume agent with feedback └─ CI passes & approved? → Auto‑merge & close issue COMPLETED ├─ PR merged └─ Issue closed
クイックスタート
前提条件
- Kubernetes が有効化された Docker Desktop(Settings → Kubernetes → Enable)
- Node.js 22+ と pnpm 10+
セットアップ
# Clone and install git clone https://github.com/jonwiggins/optio.git && cd optio pnpm install # Bootstrap infrastructure (Postgres + Redis in K8s, migrations, .env) ./scripts/setup-local.sh # Build the agent image docker build -t optio-agent:latest -f Dockerfile.agent . # Start dev servers pnpm dev
- API → http://localhost:4000
- Web → http://localhost:3100
セットアップウィザードで GitHub アクセス、エージェント認証(API キーまたは Max サブスク)と最初のリポジトリを設定できます。
プロジェクト構成
apps/ api/ Fastify API サーバー、BullMQ ワーカー、WebSocket エンドポイント、 review サービス、サブタスクシステム、OAuth プロバイダー web/ Next.js ダッシュボード(リアルタイムストリーミング、コスト解析) packages/ shared/ タイプ、タスク状態マシン、プロンプトテンプレート、エラークラスファイヤー container-runtime/ Kubernetes Pod ライフサイクル、exec、ログストリーミング agent-adapters/ Claude Code + Codex プロンプト/認証アダプタ ticket-providers/ GitHub Issues、Linear images/ コンテナ Dockerfile:ベース、node、python、go、rust、full helm/optio/ 本番 K8s デプロイ用 Helm チャート scripts/ セットアップ・初期化・エントリポイントスクリプト
本番デプロイ
Optio は Helm チャートを提供しています:
helm install optio helm/optio \ --set encryption.key=$(openssl rand -hex 32) \ --set postgresql.enabled=false \ --set externalDatabase.url="postgres://..." \ --set redis.enabled=false \ --set externalRedis.url="redis://..." \ --set ingress.enabled=true \ --set ingress.hosts[0].host=optio.example.com
OAuth プロバイダー、リソース制限、エージェントイメージ設定など、すべてのオプションは Helm チャートの値で調整できます。
テックスタック
| レイヤー | 技術 |
|---|---|
| Monorepo | Turborepo + pnpm |
| API | Fastify 5, Drizzle ORM, BullMQ |
| Web | Next.js 15, Tailwind CSS 4, Zustand |
| データベース | PostgreSQL 16 |
| キュー | Redis 7 + BullMQ |
| ランタイム | Kubernetes(ローカル開発は Docker Desktop) |
| デプロイ | Helm チャート |
| 認証 | マルチプロバイダー OAuth(GitHub, Google, GitLab) |
| CI | GitHub Actions(format, typecheck, test, build-web, build-image) |
| エージェント | Claude Code, OpenAI Codex |
コントリビューション
CONTRIBUTING.md に開発セットアップ、ワークフロー、コーディング規約が記載されています。
ライセンス
MIT