注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
プロコードエージェントを作成すると、エージェントテンプレートからコードリポジトリが生成されます。テンプレートには、Ontology MCP (OMCP)、Palantir MCP、オントロジー SDK (OSDK) の簡素化された設定が含まれ、共通のセットアップはエージェントライブラリによって提供されます。テンプレートにより、リポジトリではプラットフォームの接続処理ではなく、エージェントのロジックに集中できます。
次のエージェントフレームワーク向けのテンプレートが利用可能です。
query 関数によって駆動され、ツールは MCP サーバーを通じて公開されます。Agent および run プリミティブによって駆動されます。Agent および InMemoryRunner プリミティブによって駆動されます。Gemini へのアクセスは Foundry 言語モデルプロキシを経由するため、Google APIキーは不要です。これらのテンプレートは、プロジェクト構造、引数スキーマ、デフォルトの MCP 設定、公開フローが共通しています。異なるのは、エージェントループとカスタムツールの定義方法です。プロコードエージェントを作成するときにテンプレートを選択します。特に記載がない限り、このセクションの例では Claude Agent SDK テンプレートを使用します。
エージェントテンプレートのコードリポジトリは、次の構造になっています。
Copied!1 2 3 4 5 6agent/ # エージェントのコード ├── index.ts # エージェントのエントリーポイントと引数スキーマ ├── systemPrompt.ts # システムプロンプト └── customTools.ts # カスタムツール utils/ # 共通のプラットフォームツール scripts/ # ビルドスクリプト
| パス | 説明 |
|---|---|
agent/index.ts | エージェントのエントリーポイントです。AgentArguments スキーマと、エージェントループを駆動する runAgent 関数を定義します。 |
agent/systemPrompt.ts | モデルの動作を定義するシステムプロンプトです。 |
agent/customTools.ts | エージェントが呼び出せるカスタムツールです。プロセス内の MCP サーバーを通じて公開されます。 |
utils/ | オントロジー SDK クライアントのヘルパーや公開コマンドなど、テンプレートが使用する共通のプラットフォームツールです。 |
scripts/ | 公開用にエージェントをパッケージ化するためのビルドスクリプトです。 |
Palantir MCP、Ontology MCP、Python Transforms MCP のデフォルトの MCP 設定は、エージェントライブラリによって提供されます。以下で説明する MCP 設定関数を使用して取得します。
独自の MCP 設定を追加するには、agent/mcps/custom.ts などの新しいファイルを agent/ 配下に作成し、MCP 設定関数と同じ方法でエージェントループに登録します。カスタム設定を独自のファイルに保持することで、リポジトリのアップグレード時の競合を回避できます。
Palantir MCP は、プラットフォームを操作するためのツールを提供します。ツール検索はデフォルトで有効になっているため、エージェントは必要に応じてツールを見つけ、トークン使用量を削減します。代わりに、許可されたカタログ全体を起動時に読み込むには、エージェント設定でツール検索を無効にします。
agent/systemPrompt.ts を編集して、プロコードエージェントの動作を定義する指示を変更します。
プロコードエージェントは、実行ごとに渡される引数を受け取れます。defineInputs を使用して、agent/index.ts の AgentArguments スキーマに引数を定義します。
Copied!1 2 3 4 5 6import { defineInputs, t } from "@palantir/agent-templates-bundle"; export const AgentArguments = defineInputs({ additionalAgentContext: t.string().optional(), // ここに独自の引数を追加します });
引数は、エージェントが呼び出されると自動的に受け付けられ、エージェントが Foundry に公開されると入力のデータ型として登録されます。
agent/customTools.ts を編集して、エージェントが呼び出せるツールを定義します。
Claude Agent SDK テンプレートでは、tool でツールを定義し、createSdkMcpServer で作成したプロセス内の MCP サーバーを通じて公開します。
Copied!1 2 3 4 5 6 7 8 9 10 11import { createSdkMcpServer, tool } from "@anthropic-ai/claude-agent-sdk"; import { z } from "zod"; tool( "my_tool", "Description of what this tool does", z.object({ param: z.string() }), async (params) => { return mcpSuccessResponse("result"); }, );
OpenAI Agents SDK テンプレートでは、@openai/agents の tool でツールを定義します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15import { tool } from "@openai/agents"; const myTool = tool({ name: "my_tool", description: "Description of what this tool does", parameters: { type: "object", properties: { param: { type: "string" } }, required: ["param"], }, strict: false, execute: async (input) => { return "result"; }, });
Google ADK テンプレートでは、@google/adk の FunctionTool でツールを定義します。
Copied!1 2 3 4 5 6 7 8 9 10 11import { FunctionTool } from "@google/adk"; import { z } from "zod"; const myTool = new FunctionTool({ name: "my_tool", description: "Description of what this tool does", parameters: z.object({ param: z.string() }), execute: async (input) => { return "result"; }, });
agent/index.ts の runAgent 関数を変更して、エージェントに渡すプロンプト、モデル、MCP サーバー、またはツールを変更します。
Claude Agent SDK テンプレートでは、Ontology MCP の設定を取得し、MCP サーバーとして query 関数に渡し、エージェントのレスポンスストリームを処理します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17import { query } from "@anthropic-ai/claude-agent-sdk"; import { getOntologyMcpConfiguration } from "@palantir/agent-templates-bundle/mcp/anthropic"; export async function runAgent(args: AgentArgs) { const omcpConfig = await getOntologyMcpConfiguration(); const iter = query({ prompt: "...", options: { mcpServers: { ["ontology_mcp"]: omcpConfig, }, }, }); // エージェントのレスポンスストリームを処理します }
OpenAI Agents SDK テンプレートでは、Agent を構築し、その MCP サーバーに接続してエージェントを実行し、結果ストリームを処理します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31import { Agent, run, MCPServer } from "@openai/agents"; export async function runAgent(args: AgentArgs) { const mcpServers: MCPServer[] = [ // ここに MCP サーバーを追加します ]; for (const server of mcpServers) { await server.connect(); } try { const agent = new Agent({ name: "MyAgent", instructions: "...", mcpServers, tools: [myTool], model: "gpt-5.4", }); const result = await run(agent, "...", { stream: true }); // エージェントのレスポンスストリームを処理します await result.completed; } finally { for (const server of mcpServers) { await server.close(); } } }
Google ADK テンプレートでは、Agent を構築し、InMemoryRunner で実行して、イベントストリームを処理します。テンプレートには、テンプレートが管理する foundryGemini.ts ファイルで定義された FoundryGemini モデルラッパーが用意されています。このラッパーは Gemini へのアクセスを Foundry 言語モデルプロキシ経由にするため、Google APIキーは不要です。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32import { Agent, InMemoryRunner, MCPToolset, stringifyContent } from "@google/adk"; import { FoundryGemini } from "./foundryGemini"; export async function runAgent(args: AgentArgs) { const mcpToolsets: MCPToolset[] = [ // ここに MCP ツールセットを追加します ]; try { const agent = new Agent({ name: "MyAgent", instruction: "...", tools: [...mcpToolsets], model: new FoundryGemini({ model: "gemini-2.5-flash" }), }); const runner = new InMemoryRunner({ agent }); for await (const event of runner.runEphemeral({ userId: "user", newMessage: { role: "user", parts: [{ text: "..." }] }, })) { if (event.content) { console.log(stringifyContent(event)); } } } finally { for (const toolset of mcpToolsets) { await toolset.close(); } } }
テンプレートを使用すると、エージェントのスコープ付き権限を通じて、クライアント資格情報なしでプロコードエージェントからオントロジー SDK と Ontology MCP の両方を利用できます。
プロコードエージェントからオントロジーリソースにアクセスできるようにするには、エージェントにオントロジー SDK を追加します。Code Workspaces で SDK を作成するときと同様に、含めるオブジェクトタイプ、アクションタイプ、クエリ関数を選択してから SDK を生成します。詳しい手順については、新しいオントロジー SDK を作成するを参照してください。
オントロジーデータを直接読み書きするには、選択したオントロジーに紐づくオントロジー SDK クライアントを構築します。オントロジーのリソース識別子 (RID) は、生成された SDK によって公開されます。
Copied!1 2 3 4import { getOntologySdkClient } from "@palantir/agent-templates-bundle"; import { $ontologyRid } from "@ontology/sdk"; const client = await getOntologySdkClient($ontologyRid);
プロコードエージェントでオントロジー SDK を使用する方法については、オントロジー SDK のドキュメントおよび TypeScript オントロジー SDK リファレンスを参照してください。
プロコードエージェントにオントロジー SDK を追加すると、同じ SDK リソースに基づいて Ontology MCP が作成されます。Ontology MCP は、SDK に含まれるオブジェクトタイプ、アクションタイプ、クエリ関数を、エージェントのモデルが呼び出せる MCP ツールとして公開します。
Ontology MCP を使用するには、以下の MCP 設定関数で説明するように、getOntologyMcpConfiguration 関数で設定を取得し、プロコードエージェントの MCP サーバーに渡します。Ontology MCP が公開するツールの詳細については、Ontology MCP のドキュメントを参照してください。
エージェントライブラリは、次の関数を通じてデフォルトの MCP サーバー設定を提供します。
| 関数 | 接続先 | 説明 |
|---|---|---|
getOntologyMcpConfiguration | Ontology MCP | オントロジー SDK のオブジェクトタイプ、アクションタイプ、クエリ関数を、モデルが呼び出せるツールとして公開します。オントロジー SDKで説明しているように、先に SDK を追加する必要があります。 |
getPalantirMcpConfiguration | Palantir MCP | Palantir プラットフォームを操作するための幅広いツールを提供します。 |
getPythonTransformsMcpConfiguration | Python Transforms MCP | トランスフォームのプレビューや検索など、Foundry の Python トランスフォームを操作するためのツールを提供します。 |
各関数は async で、実行時に接続情報を解決します。URL、コマンド、認可情報はスコープ付き権限を通じて解決されるため、クライアントID、シークレット、Foundry トークンは不要です。
これらの関数はフレームワーク固有で、それぞれのエージェントフレームワークが期待する MCP サーバーの型を返します。テンプレートに合ったパッケージパスからインポートします。
| フレームワーク | インポートパス | 戻り値の型 |
|---|---|---|
| Claude Agent SDK | @palantir/agent-templates-bundle/mcp/anthropic | McpHttpServerConfig または McpStdioServerConfig |
| OpenAI Agents SDK | @palantir/agent-templates-bundle/mcp/openai | MCPServerStreamableHttp または MCPServerStdio |
| Google ADK | @palantir/agent-templates-bundle/mcp/google | MCPToolset |
各関数は非同期であることに注意してください。結果をエージェントループに登録する前に、await してください。
Claude Agent SDK テンプレートでは、解決された設定を、query に渡す mcpServers マップに登録します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16import { getOntologyMcpConfiguration, getPalantirMcpConfiguration } from "@palantir/agent-templates-bundle/mcp/anthropic"; const [omcpConfig, palantirConfig] = await Promise.all([ getOntologyMcpConfiguration(), getPalantirMcpConfiguration(), ]); const iter = query({ prompt: "...", options: { mcpServers: { ["ontology_mcp"]: omcpConfig, ["palantir_mcp"]: palantirConfig, }, }, });
OpenAI Agents SDK テンプレートでは、解決されたサーバーを、new Agent に渡す mcpServers 配列にまとめます。
Copied!1 2 3 4 5 6 7 8import { getOntologyMcpConfiguration, getPalantirMcpConfiguration } from "@palantir/agent-templates-bundle/mcp/openai"; import { MCPServer } from "@openai/agents"; const [ontologyMcp, palantirMcp] = await Promise.all([ getOntologyMcpConfiguration(), getPalantirMcpConfiguration(), ]); const mcpServers: MCPServer[] = [ontologyMcp, palantirMcp];
Google ADK テンプレートでは、解決された各 MCPToolset をエージェントの tools 配列に追加します。
Copied!1 2 3 4 5 6 7 8import { getOntologyMcpConfiguration, getPalantirMcpConfiguration } from "@palantir/agent-templates-bundle/mcp/google"; import { MCPToolset } from "@google/adk"; const [ontologyMcp, palantirMcp] = await Promise.all([ getOntologyMcpConfiguration(), getPalantirMcpConfiguration(), ]); const mcpToolsets: MCPToolset[] = [ontologyMcp, palantirMcp];
Palantir MCP と Python Transforms MCP には、Foundry のフロントドアホスト(FOUNDRY_EXTERNAL_HOST)が必要です。このホストは、エージェント自身の資格情報を使用して、実行時に Control Panel から自動的に解決されます。そのため、Marketplace を通じて別のエンロールメントにエージェントがインストールされた場合でも、正しいホストが維持されます。ホストを解決できない場合、設定はリポジトリの生成時に記録されたホストにフォールバックします。フォールバック先を上書きするには、getPalantirMcpConfiguration または getPythonTransformsMcpConfiguration に fallbackHost オプションを渡します。