本ドキュメントは、コーディングエージェント(coding_agent)のセットアップ手順をまとめたものです。
- Docker: MCPサーバー、RabbitMQ、PostgreSQLの実行
- Docker Compose: 複数コンテナの管理
以下のいずれかは必須です:
-
GitHub Personal Access Token: GitHub操作用(GitHubをタスクソースとする場合)
- 必要なスコープ:
repo(リポジトリへのフルアクセス) - 取得方法: https://github.com/settings/tokens
- 必要なスコープ:
-
GitLab Personal Access Token: GitLab操作用(GitLabをタスクソースとする場合)
- 必要なスコープ:
api(API全般へのアクセス) - 取得方法: https://gitlab.com/-/profile/personal_access_tokens
- 必要なスコープ:
LLMプロバイダーのいずれかも必須です:
-
OpenAI API Key: OpenAI LLMを使用する場合(推奨)
-
LM Studio: ローカルLLMを使用する場合
-
Ollama: ローカルLLMを使用する場合
git clone https://github.com/notfolder/coding_agent.git
cd coding_agent.env.sampleをコピーして.envファイルを作成します:
cp .env.sample .env.envファイルを編集し、以下の必須項目を設定します:
TASK_SOURCE=github
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_github_token_hereTASK_SOURCE=gitlab
GITLAB_PERSONAL_ACCESS_TOKEN=glpat_your_gitlab_token_here
GITLAB_API_URL=https://gitlab.com/api/v4LLM_PROVIDER=openai
OPENAI_API_KEY=sk-your_openai_api_key_hereまたは LM Studio使用時:
LLM_PROVIDER=lmstudio
LMSTUDIO_BASE_URL=host.docker.internal:1234
LMSTUDIO_MODEL=your-model-nameまたは Ollama使用時:
LLM_PROVIDER=ollama
OLLAMA_ENDPOINT=http://host.docker.internal:11434
OLLAMA_MODEL=your-model-name注意: Docker環境からホストマシンのLLMサーバーにアクセスする場合は host.docker.internal を使用します。
config.yamlはデフォルト設定で動作しますが、必要に応じて以下を調整できます:
- github/gitlab: リポジトリオーナー、ラベル名
- llm: LLMモデル、パラメータ
- planning: プランニング機能の設定
- command_executor: 実行環境の設定
重要: APIキーやトークンはconfig.yamlに直接記載せず、必ず環境変数(.env)で設定してください。
GitHubリポジトリの設定でラベルを作成します:
- リポジトリの Settings → Labels に移動
- 以下のラベルを作成:
| ラベル名 | 色 | 説明 |
|---|---|---|
coding agent |
#0E8A16 |
タスク対象 |
coding agent processing |
#FBCA04 |
処理中 |
coding agent done |
#1D76DB |
完了 |
coding agent paused |
#D93F0B |
一時停止 |
coding agent stopped |
#E99695 |
停止 |
GitLabプロジェクトの設定でラベルを作成します:
- プロジェクトの Settings → Labels に移動
- 上記と同じラベルを作成
docker-compose up -dこのコマンドで以下のサービスが起動します:
- postgres: PostgreSQLデータベース
- rabbitmq: RabbitMQメッセージキュー
- producer: タスク取得サービス(定期実行)
- consumer: タスク処理サービス(継続実行)
# 全サービスのログを確認
docker-compose logs -f
# 特定サービスのログを確認
docker-compose logs -f producer
docker-compose logs -f consumer一時停止シグナルを使用した停止(推奨):
# 一時停止シグナルを作成
touch contexts/pause_signal
# サービスを停止
docker-compose down即座に停止:
docker-compose down# 一時停止シグナルを削除
rm -f contexts/pause_signal
# サービスを起動
docker-compose up -d- GitHubでIssueまたはPull Requestを作成
coding agentラベルを付与- 詳細な要件を記述
例:
## やりたいこと
READMEにプロジェクトの概要を追加してください。
## 詳細
- プロジェクト名: coding_agent
- 目的: LLMを使用したコーディングエージェント
- 主要機能: GitHub/GitLabとの連携、プランニングモード、実行環境管理Producerが定期的にタスクをキューに追加し、Consumerが処理を実行します:
- タスクに
coding agent processingラベルが付与される - プランニングフェーズで計画が作成される
- 実行フェーズでコード変更が行われる
- 検証フェーズで結果が確認される
- 完了すると
coding agent doneラベルが付与される
Issue/PR/MRのコメント欄で進捗を確認できます:
- 進捗コメント: タスクの実行状況をリアルタイム更新
- チェックリスト: 計画の進行状況を視覚化
- エラー通知: 問題が発生した場合の詳細
実行中のタスクを一時停止するには:
touch contexts/pause_signalConsumerは次のチェックポイントで一時停止シグナルを検出し、現在の状態を保存して終了します。
一時停止されたタスクは、次回Producerモードを実行した際に自動的にキューに再投入されます:
rm contexts/pause_signal
docker-compose up -d詳細は docs/setup/PAUSE_RESUME_USAGE.md を参照してください。
ユーザーごとのLLM設定を管理する場合、User Config APIを使用できます。
.envファイルに以下を追加:
USE_USER_CONFIG_API=true
USER_CONFIG_API_URL=http://user-config-api:8080
USER_CONFIG_API_KEY=your-secret-api-keyブラウザで http://localhost:8501 にアクセスし、ユーザー設定を管理できます。
詳細は USER_CONFIG_SETUP.md を参照してください。
contexts/pause_signalファイルが正しい場所にあることを確認config.yamlのpause_resume.enabledがtrueであることを確認- Consumerプロセスのログを確認
- GitHub/GitLab Personal Access Tokenが正しく設定されているか確認
- ラベル名が
config.yamlの設定と一致しているか確認 - Producerのログでエラーがないか確認
- LLMプロバイダーの設定(
OPENAI_API_KEY等)が正しいか確認 - ローカルLLMの場合、サーバーが起動しているか確認
- ネットワーク接続を確認
- Dockerが正常に動作しているか確認
- 環境変数(
GITHUB_PERSONAL_ACCESS_TOKEN等)が設定されているか確認 - MCPサーバーのログを確認
- PostgreSQLコンテナが起動しているか確認:
docker-compose ps - データベース設定が正しいか確認
- ネットワーク接続を確認
- 環境変数でトークンを管理し、設定ファイルに直接記載しない
.envファイルをGitにコミットしない(.gitignoreに含まれています)- トークンには最小限の権限のみを付与
contexts/ディレクトリには機密情報が含まれる可能性があるため、適切なアクセス権限を設定- 一時停止状態のバックアップを定期的に取ることを推奨
USER_CONFIG_API_KEYは強力なランダム文字列を使用- 本番環境ではHTTPS(TLS 1.2以上)を必須とする
ENCRYPTION_KEYは32バイトのランダムバイト列を使用
- 統合仕様書: docs/SPEC.md
- クラス設計: docs/CLASS_SPEC.md
- プランニング: docs/spec/PLANNING_SPECIFICATION.md
- 一時停止・再開: docs/spec/PAUSE_RESUME_SPECIFICATION.md
- コマンド実行環境: docs/spec/COMMAND_EXECUTOR_MCP_SPECIFICATION.md
- テキストエディタMCP: docs/spec/TEXT_EDITOR_MCP_SPECIFICATION.md
- ユーザー設定Web: docs/spec/USER_CONFIG_WEB_SPECIFICATION.md
- ユーザー設定APIセットアップ: USER_CONFIG_SETUP.md
- 一時停止・再開の使い方: docs/setup/PAUSE_RESUME_USAGE.md
A1. 可能ですが、RabbitMQとPostgreSQLを別途セットアップする必要があります。Python環境を準備し、python main.pyで実行できます。
A2. 現在は1つのリポジトリのみをサポートしています。複数リポジトリを監視する場合は、それぞれ別のインスタンスを起動してください。
A3. いいえ、TASK_SOURCEで一方のみを指定できます。両方を使用する場合は、それぞれ別のインスタンスを起動してください。
A4. デフォルトでは制限がありませんが、command_executor.execution.timeout_secondsで設定できます。
A5. config.yamlのplanning.enabledをfalseに設定することで無効にできます。
文書バージョン: 3.0
最終更新日: 2024-12-07
ステータス: 最新版