Skip to main content
クイックスタート

クイックスタート

Qoder Agent SDK を使うと、TypeScript または Python から Qoder AI の能力——ファイルの読み書き、コード検索、コマンド実行など——を呼び出せます。数行のコードで AI Agent をアプリやスクリプトに組み込めます。

前提条件

  • TypeScript:Node.js 18+
  • Python:Python 3.10+

インストール

npm install @qoder-ai/qoder-agent-sdk

認証

SDK は Personal Access Token (PAT) で認証を行います。スクリプト、CI パイプライン、サードパーティ連携のシナリオに適しています。 qoder.com/account/integrations で PAT を生成してください(生成後すぐにコピーしてください — ページを閉じると値を再表示できません)。詳細な手順、カスタム環境変数、ローカル qodercli ログイン状態の再利用については SDK 認証 を参照してください。 PAT を取得したら、まず環境変数を設定することを推奨します:
export QODER_PERSONAL_ACCESS_TOKEN="<your-qoder-personal-access-token>"
node agent.mjs
次に accessTokenFromEnv()(TypeScript)/ access_token_from_env()(Python)で認証を設定します:
import { accessTokenFromEnv, query } from '@qoder-ai/qoder-agent-sdk';

const stream = query({
  prompt: 'Hello',
  options: {
    auth: accessTokenFromEnv(),
  },
});
SDK は qodercli を起動する前にこの環境変数を読み取り、解析済みのアクセストークンを一回限りの auth payload に書き込みます。通常、env オプションで PAT を渡す必要はありません。options.env を明示的に指定した場合、SDK はそちらから同名の変数を優先的に読み取ります。
セキュリティに関する注意:PAT をコードリポジトリにハードコードしないでください。環境変数またはシークレット管理サービスを通じて注入することを推奨します。

単一メッセージ入力とストリーミング入力

両 SDK とも query() がコアの入り口です。prompt が文字列の場合、1 回の呼び出しで 1 件のユーザーメッセージを送信し、そのターンの応答完了後に SDK がセッションを閉じます。単発・ステートレスなタスクに適しています。 同じセッションで複数のメッセージを送り、応答に応じて次の処理を決める場合、TypeScript では query() に非同期メッセージストリームを渡し、Python では QoderSDKClient で長時間接続を維持します。詳しくは入力モードを参照してください。

完全な例

agent.mjs(TypeScript)または agent.py(Python)を作成します:
import { accessTokenFromEnv, query } from '@qoder-ai/qoder-agent-sdk';

for await (const message of query({
  prompt: 'Analyze the codebase, find functions without test coverage, and write unit tests for them.',
  options: {
    auth: accessTokenFromEnv(),
    allowedTools: ['Read', 'Write', 'Edit', 'Glob', 'Grep', 'Bash'],
    permissionMode: 'acceptEdits',  // Auto-approve file edits
  },
})) {
  if (message.type === 'assistant') {
    for (const block of message.message.content) {
      if (block.type === 'text') {
        console.log(block.text);              // AI text response
      } else if (block.type === 'tool_use') {
        console.log(`Tool: ${block.name}`);   // Tool being called
      }
    }
  } else if (message.type === 'result') {
    console.log(`Done: ${message.subtype}`);  // Final result
  }
}
実行します:
node agent.mjs
エージェントは自律的にプロジェクトを探索し、テストカバレッジが不足している関数を見つけ、テストファイルを生成して検証を実行します。

次のステップ

  • SDK 認証 — PAT、環境変数、認証エラーハンドリング
  • 入力モード — 単一メッセージ入力、ストリーミング入力、複数メッセージのセッション、セッションの終了
  • 承認とユーザー入力 — ツール承認、権限モード、AskUserQuestion
  • ストリーミング出力 — 増分コンテンツのリアルタイム受信、タイプライター効果
  • SDK References — 完全な SDK リファレンス