>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Python

SlackでCentaurを使用してチームAIエージェントを実行する

Centaur Header

開発者たちはClaude Code、Codex、AmpなどのCLIエージェントを急速に採用しています。モジュールのリファクタリング、テストの実行、ログ内のバグ発見などを依頼します。しかし、この作業の結果は通常、特定のエンジニアのターミナル内に留まります。ビルド失敗に関する質問がチャットで出た場合、誰かがコンソールに移動してニューラルネットワークに手動でデータを入力する必要があります。

ベンチャーキャピタルのParadigmはCentaurをオープンソースとして公開しました。これは、ローカルの自律型エージェントをSlackやTeamsで直接利用可能な共有チームアシスタントに変えるプラットフォームです。

Centaurが必要な理由

チーム全体にAIエージェントをデプロイする主な課題はセキュリティです。金曜日の夜にインターンを本番環境に入れることよりも、LLMに本番キーが含まれる環境への直接アクセスを許可する方が危険です。Centaurは分離されたサンドボックスによってこの問題を解決します。

プラットフォームは独自のインフラにデプロイします。チームメンバーがSlackスレッドでタスクと一緒に@centaurにメンションすると、システムは分離されたコンテキストを作成して動作を開始します。

# Пример взаимодействия в Slack
@centaur можешь разобраться, почему падают тесты биллинга?

その後、Centaurはタスク用に別のコンテナを割り当て、その中でエージェントを実行し、コードとツールへのアクセス権を付与して、中間結果と最終結果をスレッドに返します。

セキュリティとアーキテクチャ

Paradigmのエンジニアたちは自律的なコード実行のための安全な境界を設計しました。システムはいくつかのコンポーネントで構成されています:

  • Rustコントロールプレーン — Postgres経由でキュー、会話状態、認証、ワークフロー実行を処理します。
  • Kubernetesサンドボックス — 各会話でコンテナベースの隔離環境が起動します。Git、Python、Node.js、Bun、基本的なCLIユーティリティがプリインストールされています。
  • iron-proxyネットワークプロキシ — シークレットの管理を処理します。

ここで最も興味深い部分は、リアルタイムの認証情報置換です。デフォルトでは、エージェントを含むポッドはNetworkPolicyでブロックされています。エージェントは内部サービスから実際のAPIキーやトークンを一切受け取らず、代わりに偽のプレースホルダ文字列が環境に含まれています。

エージェントがサードパーティAPIにHTTPリクエストを送信すると、トラフィックはプロキシレイヤーを通過します。プロキシは宛先ドメインをチェックし、対応するヘッダーを 찾아、1Passwordから実際のキーを外部ネットワークにパケットを送信する直前に置換します。モデルが侵害されたりや、すべての env を含む出力を生成したりしても、実際のシークレットは漏れません。

Slack / API


Centaur API (Rust + Postgres)


Kubernetes Sandbox (Agent + Workspace + Shell)


iron-proxy (Проверка доменов и инъекция реальных секретов)


Внешний интернет / Внутренние сервисы

エージェントの機能を拡張する方法

Centaurには2つの拡張フォーマットがあります:ツールと長時間実行ワークフローです。

ツール

ツールは通常のPythonパッケージとしてパッケージ化されます。会社の内部API、データベース、CLIユーティリティをラップできます。

コンテナが起動すると、プラットフォームはこれらのスクリプトをコマンドラインラッパーとしてマウントします。エージェントは起動時に centaur-tools list コマンドでそれらを検出し、 --help から引数の指示を読み取ります。

ツール構造は馴染み深いものに見えます:

tools/my_tool/
├── __init__.py
├── client.py
├── cli.py
├── .env.example
└── pyproject.toml

ワークフロー

タスクが2分以上かかる、外部イベントを待つ必要がある、またはサービスの再起動を伴う場合は、ワークフローを使用します。これらは永続的な実行ステップを持つPython関数です。

WORKFLOW_NAME = "daily_digest"

async def handler(inp, ctx):
    # Данные сохранятся, даже если сервис перезагрузится во время выполнения
    data = await ctx.step("collect", lambda: collect_digest_data(inp))
    summary = await ctx.run_agent("summarize", text=f"Сделай краткую выжимку: {data}")
    return {"summary": summary}

このアプローチは、エージェントが長いテストスイートを実行する必要がある、外部システムからの応答を待つ必要がある、または複雑なタスクを独立したサブタスクのチェーンに分解する必要がある場合に活躍します。

Centaurに委任できるもの

プロジェクトのREADMEで、作者たちはシステムが当初設計されたいくつかのユースケースを強調しています:

  • CI/CDパイプラインの障害調査。
  • デイリーダイジェストとオンコールレポートの生成。
  • カスタムプラグインで社内ナレッジベースの答えをすぐに見つける。
  • Slackの長いスレッドのコンテキスト分析と要約。
  • エージェントを分離されたテスト環境に接続してコードデバッグ。

デプロイメントと起動

プロジェクトに触れるためだけに本格的な重いKubernetesクラスタを立ち上げる必要はありません。ローカル開発や小型Mac Mini / VPSへのデプロイメントには、轻量の k3s で十分です。

プロジェクト管理は just ユーティリティに紐付いています。起動プロセスは数ステップで完了します:

# Клонируем репозиторий
git clone https://github.com/paradigmxyz/centaur
cd centaur

# Устанавливаем раннер команд
brew install just

# Настраиваем переменные для Slack и 1Password в bash-сессии
export OP_SERVICE_ACCOUNT_TOKEN=...
export SLACK_BOT_TOKEN=...
export SLACK_SIGNING_SECRET=...

# Создаём секреты в локальном K8s и запускаем стек
just bootstrap-secrets
just up

ビルドが完了すると、ボットはSlackまたはREST API経由でコマンドを受け取り始めます。

まとめ

Paradigmは、適切なセキュリティフォーカスを持つ洗練されたツールを提供しました。別の分離されたWebインターフェースを作成するのではなく、開発者は既存のチームチャットとの統合と分離されたサンドボックスでのコード実行に焦点を当てました。

チームで既にコンソールAIエージェントを積極的に使用している場合、従業員間でその機能を安全に共有する方法を探しているなら、Centaurはぜひ試す価値があります。このプロジェクトはオープンライセンスで公開されており、Rustベースのコントロールプレーンはリソース使用量の点で好印象を与えます。

関連プロジェクト