Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NVIDIA NeMo Agent Tooklit を使ってみた

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for SatohJohn SatohJohn
December 10, 2025
62

NVIDIA NeMo Agent Tooklit を使ってみた

1時間で理解するッ!!NVIDIA NIMやNVIDIA NeMoの基礎と実用例 というイベントで発表しました。
https://3-shake.connpass.com/event/373638/

Avatar for SatohJohn

SatohJohn

December 10, 2025
Tweet

More Decks by SatohJohn

Transcript

  1. 自己紹介 佐藤 慧太@SatohJohn • 2023/1 株式会社スリーシェイク入社 • Google Cloud Partner

    Top Engineer ’24、’25、’26 選出 • お客様の労苦 <Toil>を減らす • 娘のお世話を精一杯やっています
  2. Workflow Configuration functions: webpage_query: _type: webpage_query webpage_url: https://docs.smith.langchain.com description: "Search

    for information about LangSmith. For any questions about LangSmith, you must use this tool!" embedder_name: nv-embedqa-e5-v5 chunk_size: 512 current_datetime: _type: current_datetime llms: nim_llm: _type: nim model_name: meta/llama-3.1-70b-instruct temperature: 0.0 embedders: nv-embedqa-e5-v5: _type: nim model_name: nvidia/nv-embedqa-e5-v5 workflow: _type: react_agent tool_names: [webpage_query, current_datetime] llm_name: nim_llm verbose: true parse_agent_response_max_retries: 3
  3. Workflow Configuration 1. functions a. AI Agent が呼び出せる “callable なコンポーネント”

    を定義する i. ツール、sub-Agent など b. この挙動は Python によって自作することができる 2. llm a. AI Agent が利用する llm model のプロバイダと model を指定する b. nim や litellm などを指定することができる c. プロバイダは追加することができる
  4. NVIDIA NeMo Agent Toolkit のメリット • yaml を使った AI Agent

    の作成 • NVIDIA NeMo Agent Toolkit というレイヤーで Workflow を作成 するため、AI Agent の Framework に依存が少ない ◦ AI Agent の方で使える使えないがあるので注意しないとい けないことがある • 拡張を Python で記載ができる = Pluggable
  5. Sample config file functions: wiki_search: _type: wiki_search max_results: 5 current_datetime:

    _type: current_datetime llms: nim_llm: _type: nim model_name: meta/llama-3.1-70b-instruct temperature: 0.0 workflow: _type: react_agent tool_names: [wiki_search, current_datetime] llm_name: nim_llm verbose: true parse_agent_response_max_retr ies: 3
  6. Function を作成する NVIDIA NeMo Agent Toolkit における Function は Workflow

    のステップを指す 例えば Workflow の type を自作する際も Function として作成する つまり Config における _type: で基本にないものは自作することになる 今回は、Agent Development Kit を使った workflow を題とする https://github.com/NVIDIA/NeMo-Agent-Toolkit/tree/develop/examples/frameworks/adk_demo
  7. Function を作成する - Agent Development Kit - uv add "nvidia-nat[adk]"

    nat workflow create --workflow-dir agents adk https://github.com/NVIDIA/NeMo-Agent-Toolkit/blob/develop/docs/source/reference/frameworks-overvi ew.md#adk-google-agent-development-kit
  8. Function を作成する - Agent Development Kit - class ADKFunctionConfig(FunctionBaseConfig, name="adk"):

    name: str = Field(default="nat-adk-agent") description: str prompt: str llm: LLMRef tool_names: list[str] = Field(default_factory=list) workflow_alias: str = Field(default="adk_agent") user_id: str = Field(default="nat")
  9. Function を作成する - Agent Development Kit - @register_function(config_type=ADKFunctionConfig, framework_wrappers=[LLMFrameworkEnum.ADK]) async

    def adk_agent(config: ADKFunctionConfig, builder: Builder): model = await builder.get_llm(config.llm, wrapper_type=LLMFrameworkEnum.ADK) tools = await builder.get_tools(config.tool_names, wrapper_type=LLMFrameworkEnum.ADK) agent = Agent( name=config.name, model=model, description=config.description, instruction=config.prompt, tools=tools, ) runner = Runner(app_name=config.name, agent=agent, artifact_service=artifact_service, session_service=session_service) async def _response_fn(input_message: str) -> str: async def run_prompt(new_message: str) -> str: do_anything return await run_prompt(input_message) yield FunctionInfo.create(single_fn=_response_fn, description=config.description)
  10. Function を作成する - Agent Development Kit - functions: current_datetime: _type:

    current_datetime llms: llm: _type: litellm model_name: vertex_ai/gemini-2.5-pro workflow: _type: adk name: adk_demo llm: llm tool_names: [current_datetime] description: instruction: You are a helpful agent who can answer user questions.
  11. 補足 Gemini 3 Pro を使う class Gemini3(Gemini): @cached_property def api_client(self)

    -> Client: project = os.getenv("GOOGLE_CLOUD_PROJECT", "xxxxx") location = "global" return Client( project=project, location=location, http_options=types.HttpOptions( headers=self._tracking_headers, retry_options=self.retry_options, ) ) agent = Agent( name=config.name, model=Gemini3(model="gemini-3-pro-preview"), description=config.description, instruction=config.instruction )
  12. functions: current_datetime: _type: current_datetime workflow: _type: adk name: adk_demo tool_names:

    [current_datetime] description: Test agent instruction: You are a helpful agent who can answer user questions. 注意 UI の方で AI Agent がどういう動きをしたのかのトレースが見えにくい 補足 Gemini 3 Pro を使う
  13. まとめ NVIDIA NeMo Agent Toolkit を 知らないひと 1. AI Agent

    またはそれを組み込んだ ワークフローを作れる 2. yaml で定義する 3. 足りない部分は自作する
  14. まとめ NVIDIA NeMo Agent ToolKit (NAT) を 知らないひと Python で

    AI Agent 作成に挑戦したいひと 1. Config を使い定義を作成して利用 2. Function を自作して Agent また は tool として利用 3. 利用者がインストールして利用