DEV Community

SONE
SONE

Posted on

How does AIAgent work?

1. Purpose

Checking out the potential of AIAgent about flow control

2. Overview

I confirmed the potential of AIAgent by making it decide the way of controling flow for some questions.
I found that AIAgent can correctly decide and fetch required information for questions to some extent.

3. Introduction

There has been a lot of talk about LLMs lately.
AIAgent is one of the hot topics regarding LLM and I've wanted to confirm the applicability to real systems.
In LangChain, AIAgent is defined as following.

An AI agent is a system that uses an LLM to decide the control flow of an application.

In this post, I've actually confirmed AIAgent's ability about controling flow.

4. Assumption

Overview

I selected LangGraph as AIAgent Framework.
And also, I've implemented functions for AIAgent to use following APIs as tools.
Google Books API
Free Weather API
HotPepper API
RAKUTEN ICHIBA ITEMS API
RAKUTEN ICHIBA HOTELS API
Spotify API

I asked questions in the following three categories to see how AIAgent's control works:
Category1. Questions requiring one function call to answer

・How is the current weather in Tokyo?
・I want to find Italian restaurants near Tokyo station.

Category2. Questions requiring multiple function calls to answer

・I want to find hotels and restaurants near Yoyogi station.
・I want to find books and items in order to cook beef stew.

Category3. Abstract questions requiring more than one function call to answer

・I want to listen songs which match today's Tokyo.
・I want to know about Docker technology more.
・I have to prepare for my trip to France next month.

Source Code

from dotenv import load_dotenv
import json
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from langchain_community.tools.tavily_search import TavilySearchResults
import os
import requests

load_dotenv()
OPENAI_API_KEY = os.getenv("GPT_APIKEY")
TAVILY_API_KEY = os.getenv("TAVILY_API_KEY")
FREE_WEATHER_KEY=os.getenv("FREE_WEATHER_KEY")
HOTPEPPER_KEY=os.getenv("HOTPEPPER_KEY")
RAKUTEN_APP_ID=os.getenv("RAKUTEN_APP_ID")
SPOTIFY_CLIENT_ID=os.getenv("SPOTIFY_CLIENT_ID")
SPOTIFY_CLIENT_SECRET=os.getenv("SPOTIFY_CLIENT_SECRET")

@tool
def get_google_books(keyword: str):
  """
  Use this function to search books by keyword
  Args:
    keyword(str): keyword regarding books you want to search
  Returns:
    response(dict): dictionary which includes information about books
  """
  params = {
    "q": keyword
  }
  url = "https://www.googleapis.com/books/v1/volumes"
  response = requests.get(url, params=params).json()
  return response

@tool
def get_current_weather_info(keyword: str):
  """
  Use this function to get weather by keyword
  Args:
    keyword(str): keyword regarding location of which you want to know weather. For example, Zipcode, Postcode, Latitude/Longtitude or city name.
  Returns:
    response(dict): dictionary which includes information about weather
  """
  params = {
    "key": FREE_WEATHER_KEY,
    "q": keyword,
    "aqi": "no"
  }
  url = "https://api.weatherapi.com/v1/current.json"
  response = requests.get(url, params=params).json()
  return response

@tool
def get_hotpepper_shops(keyword: str):
  """
  Use this function to search restaurants by keyword
  Args:
    keyword(str): keyword regarding restaurant you want to know search. AND-search is possible with half-width space delimiter. And also, keyword is basically Japanese.
  Returns:
    response(dict): dictionary which includes information about restaurants
  """
  params = {
    "key": HOTPEPPER_KEY,
    "keyword": keyword,
    "format": "json"
  }
  url = "https://webservice.recruit.co.jp/hotpepper/shop/v1"
  response = requests.get(url, params=params).json()
  return response

@tool
def get_rakuten_ichiba_items(keyword: str):
  """
  Use this function to get rakuten ichiba items by keyword
  Args:
    keyword(str): keyword regarding rakuten ichiba items which you want to search
  Returns:
    response(dict): dictionary which includes information about rakuten ichiba items
  """
  params = {
    "format": "json",
    "applicationId": RAKUTEN_APP_ID,
    "keyword": keyword,
    "hits": 10
  }
  url = "https://app.rakuten.co.jp/services/api/IchibaItem/Search/20220601"
  response = requests.get(url, params=params).json()
  return response

@tool
def get_rakuten_hotels(keyword: str):
  """
  Use this function to get rakuten ichiba hotels by keyword
  Args:
    keyword(str): keyword regarding rakuten ichiba hotels which you want to search
  Returns:
    response(dict): dictionary which includes information about rakuten ichiba hotels
  """
  params = {
    "format": "json",
    "applicationId": RAKUTEN_APP_ID,
    "keyword": keyword,
    "hits": 10

  }
  url = "https://app.rakuten.co.jp/services/api/Travel/KeywordHotelSearch/20170426"
  response = requests.get(url, params=params).json()
  return response

@tool
def get_spotify_info(search_type: str, keyword: str):
  """
  Use this function to get spotify info by keyword
  Args:
    search_type: type you want to know. For example, album, artist, playlist, track, show, episode or audiobook.
    keyword(str): keyword regarding spotify info which you want to know
  Returns:
    response(dict): dictionary which includes information about spotify info
  """
  # Authentication
  headers = {
    "Content-Type": "application/x-www-form-urlencoded"
  }
  data = {
    "grant_type": "client_credentials"
  }
  url = "https://accounts.spotify.com/api/token"
  response = requests.post(url, headers=headers, data=data, auth=(SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET)).json()
  access_token = response["access_token"]
  # Get Info
  headers = {
    "Authorization": f"Bearer {access_token}"
  }
  params = {
    "type": search_type,
    "q": "keyword"
  }
  url = "https://api.spotify.com/v1/search"
  response = requests.get(url, headers=headers, params=params).json()
  return response

def print_stream(stream):
  for s in stream:
    message = s["messages"][-1]
    if isinstance(message, tuple):
      print(message)
    else:
      message.pretty_print()

if __name__ == "__main__":
  model = ChatOpenAI(model="gpt-4o", temperature=0)
  tavily_tool = TavilySearchResults(max_results=2)
  tools = [
    tavily_tool,
    get_google_books,
    get_current_weather_info,
    get_hotpepper_shops,
    get_rakuten_ichiba_items,
    get_rakuten_hotels,
    get_spotify_info
  ]
  graph = create_react_agent(model, tools=tools)
  query = input("What's up ?: ")
  prompt = "You are an helpful assistant. If you could not get results by using tools, fix the way to express keyword which you put into tools."
  input_query = {"messages": [
    ("system", prompt),
    ("user", query)
  ]}
  print_stream(graph.stream(input_query, stream_mode="values"))
Enter fullscreen mode Exit fullscreen mode

5. Result

Category1(Questions requiring one function call to answer)

How is the current weather in Tokyo?

What's up ?: How is the current weather in Tokyo?
================================ Human Message =================================

How is the current weather in Tokyo?
================================== Ai Message ==================================
Tool Calls:
  get_current_weather_info (call_SIeQLmrVV1OGVPmvFAGRb30K)
 Call ID: call_SIeQLmrVV1OGVPmvFAGRb30K
  Args:
    keyword: Tokyo
================================= Tool Message =================================
Name: get_current_weather_info

{"location": {"name": "Tokyo", "region": "Tokyo", "country": "Japan", "lat": 35.6895, "lon": 139.6917, "tz_id": "Asia/Tokyo", "localtime_epoch": 1739176517, "localtime": "2025-02-10 17:35"}, "current": {"last_updated_epoch": 1739176200, "last_updated": "2025-02-10 17:30", "temp_c": 10.1, "temp_f": 50.2, "is_day": 0, "condition": {"text": "Partly cloudy", "icon": "//cdn.weatherapi.com/weather/64x64/night/116.png", "code": 1003}, "wind_mph": 3.4, "wind_kph": 5.4, "wind_degree": 179, "wind_dir": "S", "pressure_mb": 1014.0, "pressure_in": 29.94, "precip_mm": 0.0, "precip_in": 0.0, "humidity": 23, "cloud": 25, "feelslike_c": 9.8, "feelslike_f": 49.6, "windchill_c": 7.4, "windchill_f": 45.3, "heatindex_c": 8.0, "heatindex_f": 46.4, "dewpoint_c": -8.1, "dewpoint_f": 17.4, "vis_km": 10.0, "vis_miles": 6.0, "uv": 0.0, "gust_mph": 4.5, "gust_kph": 7.2}}
================================== Ai Message ==================================

The current weather in Tokyo is partly cloudy with a temperature of 10.1°C (50.2°F). The wind is blowing from the south at 5.4 kph (3.4 mph). The humidity is at 23%, and there is no precipitation. The visibility is 10 kilometers (6 miles), and the UV index is 0.
Enter fullscreen mode Exit fullscreen mode
  • AIAgent was able to determine which function was needed for a given question.

I want to find Italian restaurants near Tokyo station.

What's up ?: I want to find Italian restaurants near Tokyo station.
================================ Human Message =================================

I want to find Italian restaurants near Tokyo station.
================================== Ai Message ==================================
Tool Calls:
  get_hotpepper_shops (call_fLTmoFOcJvkBm0TQKtpmTKez)
 Call ID: call_fLTmoFOcJvkBm0TQKtpmTKez
  Args:
    keyword: 東京駅 イタリアン
================================= Tool Message =================================
Name: get_hotpepper_shops

{"results": {"api_version": "1.30", "results_available": 1, "results_returned": "1", "results_start": 1, "shop": [{"address": "東京都中央区八重洲2-1 B1F", "desc": "1", "genre": {"name": "イタリアン・フレンチ"}, "id": "J003298109", "name": "俺のイタリアン&Bakery 東京駅八重洲地下街", "name_kana": "おれのいたりあんべーかりー とうきょうえきやえすちかがい", "urls": {"pc": "https://www.hotpepper.jp/strJ003298109/?vos=nhppalsa000016"}}]}}
================================== Ai Message ==================================

I found an Italian restaurant near Tokyo Station for you:

- **Name**: 俺のイタリアン&Bakery 東京駅八重洲地下街
- **Address**: 東京都中央区八重洲2-1 B1F
- **Genre**: イタリアン・フレンチ
- **Website**: [Link to restaurant](https://www.hotpepper.jp/strJ003298109/?vos=nhppalsa000016)

This restaurant is located in the Yaesu underground shopping area of Tokyo Station. Enjoy your meal!
Enter fullscreen mode Exit fullscreen mode
  • AIAgent was able to determine which function was needed for a given question.

Category2(Questions requiring multiple function calls to answer)

I want to find hotels and restaurants near Yoyogi station.

What's up ?: I want to find hotels and restaurants near Yoyogi station.
================================ Human Message =================================

I want to find hotels and restaurants near Yoyogi station.
================================== Ai Message ==================================
Tool Calls:
  get_rakuten_hotels (call_Yop2etaeF7KZ1i27p1QXv2PI)
 Call ID: call_Yop2etaeF7KZ1i27p1QXv2PI
  Args:
    keyword: Yoyogi station
  get_hotpepper_shops (call_yMQt0xAQqeLeh9ZiV61YM7bj)
 Call ID: call_yMQt0xAQqeLeh9ZiV61YM7bj
  Args:
    keyword: 代々木駅
================================= Tool Message =================================
Name: get_hotpepper_shops

{"results": {"api_version": "1.30", "results_available": 12, "results_returned": "10", "results_start": 1, "shop": [{"address": "東京都渋谷区代々木1-32-12 パリスビル3階", "desc": "1", "genre": {"name": "アジア・エスニック料理"}, "id": "J000141387", "name": "オリエンタルテーブルアマ oriental table AMA 代々木駅前店", "name_kana": "おりえんたるてーぶるあまよよぎえきまえてん", "urls": {"pc": "https://www.hotpepper.jp/strJ000141387/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区千駄ヶ谷5東京都渋谷区千駄ヶ谷5-20-16 2F", "desc": "1", "genre": {"name": "ダイニングバー・バル"}, "id": "J003851701", "name": "オイスターバ―COVO 代々木駅徒歩30秒", "name_kana": "かきとわいん おいすたーばーこーヴぉ", "urls": {"pc": "https://www.hotpepper.jp/strJ003851701/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区代々木1-36-6 TC第59代々木駅前ビル", "desc": "1", "genre": {"name": "カフェ・スイーツ"}, "id": "J003341050", "name": "ネットカフェ カスタマカフェ 代々木店", "name_kana": "ねっとかふぇ かすたまかふぇ よよぎてん", "urls": {"pc": "https://www.hotpepper.jp/strJ003341050/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区代々木1-36-6代々木駅前ビルB1F", "desc": "0", "genre": {"name": "アジア・エスニック料理"}, "id": "J001127455", "name": "Asian Smile", "name_kana": "あじあんすまいる", "urls": {"pc": "https://www.hotpepper.jp/strJ001127455/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区代々木1-32-12", "desc": "0", "genre": {"name": "その他グルメ"}, "id": "J000641661", "name": "かつや代々木駅前店", "name_kana": "かつやよよぎえきまえてん", "urls": {"pc": "https://www.hotpepper.jp/strJ000641661/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区千駄ヶ谷5-24-3", "desc": "0", "genre": {"name": "イタリアン・フレンチ"}, "id": "J000732613", "name": "グラッチェ デュオ 代々木駅前", "name_kana": "ぐらっちぇ でゅお よよぎえきまえ", "urls": {"pc": "https://www.hotpepper.jp/strJ000732613/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区千駄ヶ谷4-29-10", "desc": "0", "genre": {"name": "洋食"}, "id": "J000140619", "name": "カレーハウス CoCo壱番屋 代々木駅西口店", "name_kana": "ここいちばんや", "urls": {"pc": "https://www.hotpepper.jp/strJ000140619/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区代々木1-37-2", "desc": "0", "genre": {"name": "その他グルメ"}, "id": "J000141406", "name": "サイゼリヤ代々木駅前店", "name_kana": "さいぜりやよよぎえきまえてん", "urls": {"pc": "https://www.hotpepper.jp/strJ000141406/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区代々木1-36-1", "desc": "0", "genre": {"name": "カフェ・スイーツ"}, "id": "J000249215", "name": "タリーズコーヒー代々木駅北口店", "name_kana": "たりーずこーひーよよぎえききたぐちてん", "urls": {"pc": "https://www.hotpepper.jp/strJ000249215/?vos=nhppalsa000016"}}, {"address": "東京都渋谷区代々木1-36-6代々木駅前ビルB1", "desc": "0", "genre": {"name": "アジア・エスニック料理"}, "id": "J000686074", "name": "タイカレーの専門店 アジアの台所 トゥクトゥク", "name_kana": "とぅくとぅく ", "urls": {"pc": "https://www.hotpepper.jp/strJ000686074/?vos=nhppalsa000016"}}]}}
================================== Ai Message ==================================

I found some restaurants near Yoyogi Station, but unfortunately, I couldn't find any hotels. Here are some restaurants you might be interested in:

1. **Oriental Table AMA Yoyogi Ekimae**  
   - Genre: Asian/ethnic cuisine  
   - Address: 東京都渋谷区代々木1-32-12 パリスビル3階  
   - [More Info](https://www.hotpepper.jp/strJ000141387/?vos=nhppalsa000016)

2. **Oyster Bar COVO Yoyogi Ekitoho 30 Byo**  
   - Genre: Dining bar/bar  
   - Address: 東京都渋谷区千駄ヶ谷5-20-16 2F  
   - [More Info](https://www.hotpepper.jp/strJ003851701/?vos=nhppalsa000016)

3. **Net Cafe Custom Cafe Yoyogi**  
   - Genre: Cafe/sweets  
   - Address: 東京都渋谷区代々木1-36-6 TC第59代々木駅前ビル  
   - [More Info](https://www.hotpepper.jp/strJ003341050/?vos=nhppalsa000016)

4. **Asian Smile**  
   - Genre: Asian/ethnic cuisine  
   - Address: 東京都渋谷区代々木1-36-6 代々木駅前ビルB1F  
   - [More Info](https://www.hotpepper.jp/strJ001127455/?vos=nhppalsa000016)

5. **Katsuya Yoyogi Ekimae**  
   - Genre: Other gourmet  
   - Address: 東京都渋谷区代々木1-32-12  
   - [More Info](https://www.hotpepper.jp/strJ000641661/?vos=nhppalsa000016)

If you need more information or further assistance, feel free to ask!
Enter fullscreen mode Exit fullscreen mode
  • AIAgent was able to determine which functions were needed for a given question.

  • AIAgent was not able to fetch information about hotels just because input a argument which RALUTEN HOTEL API can’t accept. This is a minor issue, but it needs to be addressed when you design systems which combine AIAgent and some APIs.

I want to find books and items in order to cook beef stew.

What's up ?: I want to find books and items in order to cook beef stew.
================================ Human Message =================================

I want to find books and items in order to cook beef stew.
================================== Ai Message ==================================
Tool Calls:
  get_google_books (call_ZOlOHQmBANbxB8iKXd8o7hwn)
 Call ID: call_ZOlOHQmBANbxB8iKXd8o7hwn
  Args:
    keyword: beef stew recipes
  get_rakuten_ichiba_items (call_U1bNo6FfKYH1A9HwKbueUrez)
 Call ID: call_U1bNo6FfKYH1A9HwKbueUrez
  Args:
    keyword: beef stew ingredients
================================= Tool Message =================================
Name: get_rakuten_ichiba_items

{"GenreInformation": [], "Items": [], "TagInformation": [], "carrier": 0, "count": 0, "first": 0, "hits": 0, "last": 0, "page": 1, "pageCount": 0}
================================== Ai Message ==================================

Here are some books and items related to cooking beef stew:

### Books on Beef Stew Recipes:
1. **アートオブシンプルフード** by アリス・ウォーターズ
   - Description: A comprehensive collection of organic recipes, including beef stew.
   - [More Info](https://books.google.com/books/about/%E3%82%A2%E3%83%BC%E3%83%88%E3%82%AA%E3%83%96%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%83%95%E3%83%BC%E3%83%89.html?hl=&id=fz2RMAEACAAJ)

2. **Beef Stew Mania** by Gordon Rock
   - Description: Features 25 delicious beef stew recipes, including Red Wine Beef Stew and Cuban Beef Stew.
   - [More Info](https://play.google.com/store/books/details?id=B__bDwAAQBAJ)

3. **Hello! 365 Beef Stew Recipes** by MS Soup
   - Description: A collection of 365 beef stew recipes for beginners.
   - [More Info](https://books.google.com/books/about/Hello_365_Beef_Stew_Recipes.html?hl=&id=M8JqzQEACAAJ)

4. **Pressure Cooker Beef Stew Cookbook** by John Ahmad
   - Description: Offers a variety of beef stew recipes made effortlessly in a pressure cooker.
   - [More Info](https://books.google.com/books/about/Pressure_Cooker_Beef_Stew_Cookbook.html?hl=&id=6Kt50AEACAAJ)

5. **45 Tasty Crock Pot Soups And Stews Recipes** by Melinda Cooper
   - Description: Includes 10 tasty crock-pot beef soup and stew recipes.
   - [More Info](https://play.google.com/store/books/details?id=hIGTDwAAQBAJ)

### Items for Cooking Beef Stew:
Unfortunately, I couldn't find specific items related to beef stew ingredients on Rakuten Ichiba. You might want to search for common ingredients like beef, potatoes, carrots, onions, and beef broth in your local grocery store or online marketplaces.

If you need further assistance or specific items, feel free to ask!
Enter fullscreen mode Exit fullscreen mode
  • AIAgent was able to determine which functions were needed for a given question.

  • AIAgent was not able to fetch information about items just because input a argument which RALUTEN ITEMS API can’t accept. This is a minor issue, but it needs to be addressed when you design systems which combine AIAgent and some APIs.

Category3(Abstract questions requiring more than one function call to answer)

I want to listen songs which match today's Tokyo.

What's up ?: I want to listen songs which match today's Tokyo.
================================ Human Message =================================

I want to listen songs which match today's Tokyo.
================================== Ai Message ==================================
Tool Calls:
  get_current_weather_info (call_YAG4MJ4PeFcDXZ2uUZsP71gq)
 Call ID: call_YAG4MJ4PeFcDXZ2uUZsP71gq
  Args:
    keyword: Tokyo
================================= Tool Message =================================
Name: get_current_weather_info

{"location": {"name": "Tokyo", "region": "Tokyo", "country": "Japan", "lat": 35.6895, "lon": 139.6917, "tz_id": "Asia/Tokyo", "localtime_epoch": 1739176711, "localtime": "2025-02-10 17:38"}, "current": {"last_updated_epoch": 1739176200, "last_updated": "2025-02-10 17:30", "temp_c": 10.1, "temp_f": 50.2, "is_day": 0, "condition": {"text": "Partly cloudy", "icon": "//cdn.weatherapi.com/weather/64x64/night/116.png", "code": 1003}, "wind_mph": 3.4, "wind_kph": 5.4, "wind_degree": 179, "wind_dir": "S", "pressure_mb": 1014.0, "pressure_in": 29.94, "precip_mm": 0.0, "precip_in": 0.0, "humidity": 23, "cloud": 25, "feelslike_c": 9.8, "feelslike_f": 49.6, "windchill_c": 7.4, "windchill_f": 45.3, "heatindex_c": 8.0, "heatindex_f": 46.4, "dewpoint_c": -8.1, "dewpoint_f": 17.4, "vis_km": 10.0, "vis_miles": 6.0, "uv": 0.0, "gust_mph": 4.5, "gust_kph": 7.2}}
================================== Ai Message ==================================
Tool Calls:
  get_spotify_info (call_xKe4YQkbHiRNwZmD7zqohauR)
 Call ID: call_xKe4YQkbHiRNwZmD7zqohauR
  Args:
    search_type: playlist
    keyword: Tokyo partly cloudy evening
================================= Tool Message =================================
Name: get_spotify_info

{"playlists": {"href": "https://api.spotify.com/v1/search?offset=0&limit=20&query=keyword&type=playlist", "limit": 20, "next": "https://api.spotify.com/v1/search?offset=20&limit=20&query=keyword&type=playlist", "offset": 0, "previous": null, "total": 304, "items": [{"collaborative": false, "description": "Find our playlist with these keywords: 2000 r&b songs - best r&b 2000s - r&b hits 2000 - top r&b song 2000 - 2000s r&b hits - r&b 00s songs - 00s r&b top - r&b 2000 playlist - popular r&b 2000s - top r&b songs 2000 - 2000 r&b music - best of 2000 r&b - 2000s r&b jams - r&b songs from 2000", "external_urls": {"spotify": "https://open.spotify.com/playlist/4h9dvquufDVDyGuYRHeu73"}, "href": "https://api.spotify.com/v1/playlists/4h9dvquufDVDyGuYRHeu73", "id": "4h9dvquufDVDyGuYRHeu73", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da846bec525f6806268ab03bd4f1", "width": null}], "name": "2000 R&B Hits - Top R&B 2000s Songs (R&B 00s Popular Songs)", "owner": {"display_name": "Redlist - Top Tracks", "external_urls": {"spotify": "https://open.spotify.com/user/31kooaty35jze4hdihc64m32j6b4"}, "href": "https://api.spotify.com/v1/users/31kooaty35jze4hdihc64m32j6b4", "id": "31kooaty35jze4hdihc64m32j6b4", "type": "user", "uri": "spotify:user:31kooaty35jze4hdihc64m32j6b4"}, "primary_color": null, "public": true, "snapshot_id": "AAAcwCX0lVweQ+uRHUKD0rvjykTPAN+E", "tracks": {"href": "https://api.spotify.com/v1/playlists/4h9dvquufDVDyGuYRHeu73/tracks", "total": 150}, "type": "playlist", "uri": "spotify:playlist:4h9dvquufDVDyGuYRHeu73"}, {"collaborative": false, "description": "", "external_urls": {"spotify": "https://open.spotify.com/playlist/6eGTDP6hh7zM4wR8HkHaiC"}, "href": "https://api.spotify.com/v1/playlists/6eGTDP6hh7zM4wR8HkHaiC", "id": "6eGTDP6hh7zM4wR8HkHaiC", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da84b4f51e0b8131d5c2e6d5955e", "width": null}], "name": "This is 唾奇", "owner": {"display_name": "Buchikun", "external_urls": {"spotify": "https://open.spotify.com/user/21f32sm6qazirnxormypqplmq"}, "href": "https://api.spotify.com/v1/users/21f32sm6qazirnxormypqplmq", "id": "21f32sm6qazirnxormypqplmq", "type": "user", "uri": "spotify:user:21f32sm6qazirnxormypqplmq"}, "primary_color": null, "public": true, "snapshot_id": "AAAAcQaGxeLKvjHpW4rmF5k8O7jBRFD8", "tracks": {"href": "https://api.spotify.com/v1/playlists/6eGTDP6hh7zM4wR8HkHaiC/tracks", "total": 101}, "type": "playlist", "uri": "spotify:playlist:6eGTDP6hh7zM4wR8HkHaiC"}, {"collaborative": false, "description": "Find our playlist with these keywords: best 2000s hip hop music - 2000s hip hop music - 2000 hip hop - 00 hip hop songs - hip hop music video 2000s - 2000s hip hop hits - 2000s hip hop - hip hop 2000s - hip hop music mix 2000s - hip hop music video mix 2000s - best 2000s hip hop - 00s hip hop mix", "external_urls": {"spotify": "https://open.spotify.com/playlist/0dMexqq0XIWS3QJ74z3ZhD"}, "href": "https://api.spotify.com/v1/playlists/0dMexqq0XIWS3QJ74z3ZhD", "id": "0dMexqq0XIWS3QJ74z3ZhD", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000d72c52f4e9a551e7d34e149b92c6", "width": null}], "name": "Hip Hop 2000s Music - Best Hip Hop Hits of the 00s Playlist (Top Hip Hop Songs from 2000 to 2009)", "owner": {"display_name": "Redlist Playlists", "external_urls": {"spotify": "https://open.spotify.com/user/7bntwjdswpqhrnqr0gssydbd0"}, "href": "https://api.spotify.com/v1/users/7bntwjdswpqhrnqr0gssydbd0", "id": "7bntwjdswpqhrnqr0gssydbd0", "type": "user", "uri": "spotify:user:7bntwjdswpqhrnqr0gssydbd0"}, "primary_color": null, "public": true, "snapshot_id": "AAAaR/4YuMrmwRBrr2gUy+V5oVzDXd+B", "tracks": {"href": "https://api.spotify.com/v1/playlists/0dMexqq0XIWS3QJ74z3ZhD/tracks", "total": 150}, "type": "playlist", "uri": "spotify:playlist:0dMexqq0XIWS3QJ74z3ZhD"}, {"collaborative": false, "description": "", "external_urls": {"spotify": "https://open.spotify.com/playlist/03LCO2b1nGQKhuSfry6YrG"}, "href": "https://api.spotify.com/v1/playlists/03LCO2b1nGQKhuSfry6YrG", "id": "03LCO2b1nGQKhuSfry6YrG", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da84b2782b828f8468e1d9ed322b", "width": null}], "name": "告白実行委員会 ストーリー順", "owner": {"display_name": "かこ", "external_urls": {"spotify": "https://open.spotify.com/user/4fbsipazdsphg6aj5svfigwrj"}, "href": "https://api.spotify.com/v1/users/4fbsipazdsphg6aj5svfigwrj", "id": "4fbsipazdsphg6aj5svfigwrj", "type": "user", "uri": "spotify:user:4fbsipazdsphg6aj5svfigwrj"}, "primary_color": null, "public": true, "snapshot_id": "AAAAXPwU6WLxJ8QgeUKiAJIQxWVZRkcF", "tracks": {"href": "https://api.spotify.com/v1/playlists/03LCO2b1nGQKhuSfry6YrG/tracks", "total": 65}, "type": "playlist", "uri": "spotify:playlist:03LCO2b1nGQKhuSfry6YrG"}, {"collaborative": false, "description": "Find our playlist with these keywords: best uk drill songs - uk drill hits - top uk drill - uk drill essentials - all time uk drill - popular uk drill - iconic uk drill songs - favorite uk drill - uk drill playlist - drill music uk - timeless uk drill hits - british uk drill - united kingdom drill", "external_urls": {"spotify": "https://open.spotify.com/playlist/652TD735fW0JesE9VgHhzS"}, "href": "https://api.spotify.com/v1/playlists/652TD735fW0JesE9VgHhzS", "id": "652TD735fW0JesE9VgHhzS", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da848777444b04e93a5c72ad6926", "width": null}], "name": " Best UK Drill of All Time", "owner": {"display_name": "Redlist - Viral Hits", "external_urls": {"spotify": "https://open.spotify.com/user/2ug8verx9ylfhd1i25hbzyq7k"}, "href": "https://api.spotify.com/v1/users/2ug8verx9ylfhd1i25hbzyq7k", "id": "2ug8verx9ylfhd1i25hbzyq7k", "type": "user", "uri": "spotify:user:2ug8verx9ylfhd1i25hbzyq7k"}, "primary_color": null, "public": true, "snapshot_id": "AAAIa7vPsHMsi3u88x6UDpCekdvQ7x5k", "tracks": {"href": "https://api.spotify.com/v1/playlists/652TD735fW0JesE9VgHhzS/tracks", "total": 100}, "type": "playlist", "uri": "spotify:playlist:652TD735fW0JesE9VgHhzS"}, null, {"collaborative": false, "description": "Find our playlist with these keywords: philippines spotify 2025 - top philippines songs 2025 spotify - filipino spotify - spotify playlist 2025 philippines - hot hits philippines spotify 2025 - spotify top hits philippines - philippines songs 2025 spotify - top hits philippines music playlist 2025", "external_urls": {"spotify": "https://open.spotify.com/playlist/2PvZKuj3e0FPqDHNUCZCSv"}, "href": "https://api.spotify.com/v1/playlists/2PvZKuj3e0FPqDHNUCZCSv", "id": "2PvZKuj3e0FPqDHNUCZCSv", "images": [{"height": null, "url": "https://image-cdn-fa.spotifycdn.com/image/ab67706c0000da84639041e4c074c6dd45431262", "width": null}], "name": "Spotify Top Hits Philippines 2025", "owner": {"display_name": "Redlist - Obsidian Drop", "external_urls": {"spotify": "https://open.spotify.com/user/5myg75bezgfdy3k7chapzj3pr"}, "href": "https://api.spotify.com/v1/users/5myg75bezgfdy3k7chapzj3pr", "id": "5myg75bezgfdy3k7chapzj3pr", "type": "user", "uri": "spotify:user:5myg75bezgfdy3k7chapzj3pr"}, "primary_color": null, "public": true, "snapshot_id": "AAAp9Yops7TwNqqZ2j2+zsjzo3vYPDmp", "tracks": {"href": "https://api.spotify.com/v1/playlists/2PvZKuj3e0FPqDHNUCZCSv/tracks", "total": 80}, "type": "playlist", "uri": "spotify:playlist:2PvZKuj3e0FPqDHNUCZCSv"}, {"collaborative": false, "description": "", "external_urls": {"spotify": "https://open.spotify.com/playlist/7Lt3qLCeMtHWYtUyM8Ra5R"}, "href": "https://api.spotify.com/v1/playlists/7Lt3qLCeMtHWYtUyM8Ra5R", "id": "7Lt3qLCeMtHWYtUyM8Ra5R", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da8423f43c2d683691328279b00c", "width": null}], "name": "告白実行委員会", "owner": {"display_name": "ひまわり", "external_urls": {"spotify": "https://open.spotify.com/user/31iaefink72p5x7jpurgxjoowvpu"}, "href": "https://api.spotify.com/v1/users/31iaefink72p5x7jpurgxjoowvpu", "id": "31iaefink72p5x7jpurgxjoowvpu", "type": "user", "uri": "spotify:user:31iaefink72p5x7jpurgxjoowvpu"}, "primary_color": null, "public": true, "snapshot_id": "AAAAiWLRaGGktiMnkcbUgJCQChoCTOuC", "tracks": {"href": "https://api.spotify.com/v1/playlists/7Lt3qLCeMtHWYtUyM8Ra5R/tracks", "total": 90}, "type": "playlist", "uri": "spotify:playlist:7Lt3qLCeMtHWYtUyM8Ra5R"}, {"collaborative": false, "description": "Find our playlist with these keywords: billboard hits 2025 - top songs 2025 - billboard 2025 chart - billboard top songs 2025 - billboard trending 2025 -  billboard 2025 songs -  billboard popular music 2025 - top billboard playlist 2025 - billboard hot 100 2025 - current billboard hits 2025", "external_urls": {"spotify": "https://open.spotify.com/playlist/0EN2gQhhn0rCYUR5BY1UJy"}, "href": "https://api.spotify.com/v1/playlists/0EN2gQhhn0rCYUR5BY1UJy", "id": "0EN2gQhhn0rCYUR5BY1UJy", "images": [{"height": null, "url": "https://image-cdn-fa.spotifycdn.com/image/ab67706c0000da84db24b99621e7d6b41f238ad3", "width": null}], "name": "Billboard Top 100 This Week 2025 - Top 100 Billboard Songs 2025 (Best Billboard Music 2025)", "owner": {"display_name": "Redlist - Music List", "external_urls": {"spotify": "https://open.spotify.com/user/31juj2afzvb7ybwlmm4qxhe7hmra"}, "href": "https://api.spotify.com/v1/users/31juj2afzvb7ybwlmm4qxhe7hmra", "id": "31juj2afzvb7ybwlmm4qxhe7hmra", "type": "user", "uri": "spotify:user:31juj2afzvb7ybwlmm4qxhe7hmra"}, "primary_color": null, "public": true, "snapshot_id": "AAAixVoXEfwcQFTp/7RGABlMwRPSTFKx", "tracks": {"href": "https://api.spotify.com/v1/playlists/0EN2gQhhn0rCYUR5BY1UJy/tracks", "total": 100}, "type": "playlist", "uri": "spotify:playlist:0EN2gQhhn0rCYUR5BY1UJy"}, {"collaborative": false, "description": "", "external_urls": {"spotify": "https://open.spotify.com/playlist/15khNuLgjuEUorhl6KkYNj"}, "href": "https://api.spotify.com/v1/playlists/15khNuLgjuEUorhl6KkYNj", "id": "15khNuLgjuEUorhl6KkYNj", "images": [{"height": null, "url": "https://i.scdn.co/image/ab67616d00001e024e4a059536b61484dcb39dd8", "width": null}], "name": "常套句", "owner": {"display_name": "Masakoichijo", "external_urls": {"spotify": "https://open.spotify.com/user/31du65jprt2v5syfqil7qkurwtda"}, "href": "https://api.spotify.com/v1/users/31du65jprt2v5syfqil7qkurwtda", "id": "31du65jprt2v5syfqil7qkurwtda", "type": "user", "uri": "spotify:user:31du65jprt2v5syfqil7qkurwtda"}, "primary_color": null, "public": true, "snapshot_id": "AAAAA5/to2l+pY24ntAZu+UI5t8zSuFE", "tracks": {"href": "https://api.spotify.com/v1/playlists/15khNuLgjuEUorhl6KkYNj/tracks", "total": 2}, "type": "playlist", "uri": "spotify:playlist:15khNuLgjuEUorhl6KkYNj"}, {"collaborative": false, "description": "Find our playlist with these keywords: christian music hits 2025 - worship songs 2025 - praise songs playlist 2025 - top 50 christian music - christian worship music 203 - best praise songs 2025 - popular worship music 2025 - best christian music 2025 - christian praise and worship songs playlist", "external_urls": {"spotify": "https://open.spotify.com/playlist/174NV7zjemTk8C4ebhbQY6"}, "href": "https://api.spotify.com/v1/playlists/174NV7zjemTk8C4ebhbQY6", "id": "174NV7zjemTk8C4ebhbQY6", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da842f2682de28af773ab5501b79", "width": null}], "name": "Top 50 Christian Songs 2025 - Best Christian Praise and Worship Music 2025", "owner": {"display_name": "Redlist Playlists", "external_urls": {"spotify": "https://open.spotify.com/user/7bntwjdswpqhrnqr0gssydbd0"}, "href": "https://api.spotify.com/v1/users/7bntwjdswpqhrnqr0gssydbd0", "id": "7bntwjdswpqhrnqr0gssydbd0", "type": "user", "uri": "spotify:user:7bntwjdswpqhrnqr0gssydbd0"}, "primary_color": null, "public": true, "snapshot_id": "AAAF/vYzrVXv3waIkLUbNCFej++tWzTV", "tracks": {"href": "https://api.spotify.com/v1/playlists/174NV7zjemTk8C4ebhbQY6/tracks", "total": 50}, "type": "playlist", "uri": "spotify:playlist:174NV7zjemTk8C4ebhbQY6"}, {"collaborative": false, "description": "", "external_urls": {"spotify": "https://open.spotify.com/playlist/6SBEk1p2yvnGLQLlDk3xqT"}, "href": "https://api.spotify.com/v1/playlists/6SBEk1p2yvnGLQLlDk3xqT", "id": "6SBEk1p2yvnGLQLlDk3xqT", "images": [{"height": 640, "url": "https://mosaic.scdn.co/640/ab67616d00001e0278a16e60ed42b79cc36a8fffab67616d00001e029e6e33cadc2e8610b0be6ceaab67616d00001e02f0bd6e44c5b5e31f13417fe8ab67616d00001e02f3b9738fa1ab3727852b843b", "width": 640}, {"height": 300, "url": "https://mosaic.scdn.co/300/ab67616d00001e0278a16e60ed42b79cc36a8fffab67616d00001e029e6e33cadc2e8610b0be6ceaab67616d00001e02f0bd6e44c5b5e31f13417fe8ab67616d00001e02f3b9738fa1ab3727852b843b", "width": 300}, {"height": 60, "url": "https://mosaic.scdn.co/60/ab67616d00001e0278a16e60ed42b79cc36a8fffab67616d00001e029e6e33cadc2e8610b0be6ceaab67616d00001e02f0bd6e44c5b5e31f13417fe8ab67616d00001e02f3b9738fa1ab3727852b843b", "width": 60}], "name": "課題曲1", "owner": {"display_name": "ASUMI", "external_urls": {"spotify": "https://open.spotify.com/user/22xt5oaw5ubqfkt63iiw4hbyi"}, "href": "https://api.spotify.com/v1/users/22xt5oaw5ubqfkt63iiw4hbyi", "id": "22xt5oaw5ubqfkt63iiw4hbyi", "type": "user", "uri": "spotify:user:22xt5oaw5ubqfkt63iiw4hbyi"}, "primary_color": null, "public": true, "snapshot_id": "AAAAHzsBq9MuF3QenbSPTpE+pW/yObjR", "tracks": {"href": "https://api.spotify.com/v1/playlists/6SBEk1p2yvnGLQLlDk3xqT/tracks", "total": 9}, "type": "playlist", "uri": "spotify:playlist:6SBEk1p2yvnGLQLlDk3xqT"}, {"collaborative": false, "description": "Find our playlist with these keywords: new hits playlist 2025 - trending music mix 2025 - latest song releases 2025 - new music hits 2025 - fresh music 2025 - 2025 hit songs playlist - new music mix 2025 - popular songs 2025 - 2025 new music - latest hit songs 2025 - hit playlist 2025", "external_urls": {"spotify": "https://open.spotify.com/playlist/6jdTMw4K4W55JdRzzrxgei"}, "href": "https://api.spotify.com/v1/playlists/6jdTMw4K4W55JdRzzrxgei", "id": "6jdTMw4K4W55JdRzzrxgei", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da849796d93a5369cb4de18ef259", "width": null}], "name": "Top New Songs February 2025", "owner": {"display_name": "Redlist Apollo", "external_urls": {"spotify": "https://open.spotify.com/user/y20zfj0f6nuoonndli9capqwz"}, "href": "https://api.spotify.com/v1/users/y20zfj0f6nuoonndli9capqwz", "id": "y20zfj0f6nuoonndli9capqwz", "type": "user", "uri": "spotify:user:y20zfj0f6nuoonndli9capqwz"}, "primary_color": null, "public": true, "snapshot_id": "AAAcDWnQguntcYNua+kjPABwakPGEJQi", "tracks": {"href": "https://api.spotify.com/v1/playlists/6jdTMw4K4W55JdRzzrxgei/tracks", "total": 60}, "type": "playlist", "uri": "spotify:playlist:6jdTMw4K4W55JdRzzrxgei"}, {"collaborative": false, "description": "京都アニメーション制作のアニメのOPやED、作品の名曲を詰め込んだプレイリスト※Spotifyに存在しない曲複数有", "external_urls": {"spotify": "https://open.spotify.com/playlist/63liZF1ckJnUyITEvr8x3P"}, "href": "https://api.spotify.com/v1/playlists/63liZF1ckJnUyITEvr8x3P", "id": "63liZF1ckJnUyITEvr8x3P", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da84387eda08c47161e8f591dd7c", "width": null}], "name": "京都アニメーション", "owner": {"display_name": "ともやん", "external_urls": {"spotify": "https://open.spotify.com/user/h0s8oqt1leivm0n18j19209w0"}, "href": "https://api.spotify.com/v1/users/h0s8oqt1leivm0n18j19209w0", "id": "h0s8oqt1leivm0n18j19209w0", "type": "user", "uri": "spotify:user:h0s8oqt1leivm0n18j19209w0"}, "primary_color": null, "public": true, "snapshot_id": "AAAAUz+jrOPj6Cl/SnSOAJQ3yP7s3t72", "tracks": {"href": "https://api.spotify.com/v1/playlists/63liZF1ckJnUyITEvr8x3P/tracks", "total": 68}, "type": "playlist", "uri": "spotify:playlist:63liZF1ckJnUyITEvr8x3P"}, {"collaborative": false, "description": "Find our playlist with these keywords: alternative rock 1990 - hits 1990 alternative - 90s alternative hits - 2000s rock songs - best rock 2000 - 90s 2000s rock mix - 2000 alternative rock songs - 90s rock playlist - rock hits 2000s - top alternative 2000s - best of 90s rock - 2000 alt rock", "external_urls": {"spotify": "https://open.spotify.com/playlist/23wVfSXsUtP9z94e1jMjeQ"}, "href": "https://api.spotify.com/v1/playlists/23wVfSXsUtP9z94e1jMjeQ", "id": "23wVfSXsUtP9z94e1jMjeQ", "images": [{"height": null, "url": "https://image-cdn-fa.spotifycdn.com/image/ab67706c0000da84ac58dfe1f618f95f66cf0e89", "width": null}], "name": "Alternative Rock 90s 2000s - Best Alternative Rock Songs of 90s 2000s", "owner": {"display_name": "Redlist - International Playlists", "external_urls": {"spotify": "https://open.spotify.com/user/31df72vjs4grg6k65aigus3srat4"}, "href": "https://api.spotify.com/v1/users/31df72vjs4grg6k65aigus3srat4", "id": "31df72vjs4grg6k65aigus3srat4", "type": "user", "uri": "spotify:user:31df72vjs4grg6k65aigus3srat4"}, "primary_color": null, "public": true, "snapshot_id": "AAAYYS/5XXLK0XnSChYZuL/kAKY1XUv2", "tracks": {"href": "https://api.spotify.com/v1/playlists/23wVfSXsUtP9z94e1jMjeQ/tracks", "total": 150}, "type": "playlist", "uri": "spotify:playlist:23wVfSXsUtP9z94e1jMjeQ"}, {"collaborative": false, "description": "", "external_urls": {"spotify": "https://open.spotify.com/playlist/5lIvCObYKtMmob4FWhz3Nb"}, "href": "https://api.spotify.com/v1/playlists/5lIvCObYKtMmob4FWhz3Nb", "id": "5lIvCObYKtMmob4FWhz3Nb", "images": [{"height": 640, "url": "https://mosaic.scdn.co/640/ab67616d00001e02373b24148204b38d135e753fab67616d00001e026a81da932758060c47773764ab67616d00001e02d869105c7df379b1b634c6b4ab67616d00001e02d9f45180b95fff6dc19f5f7b", "width": 640}, {"height": 300, "url": "https://mosaic.scdn.co/300/ab67616d00001e02373b24148204b38d135e753fab67616d00001e026a81da932758060c47773764ab67616d00001e02d869105c7df379b1b634c6b4ab67616d00001e02d9f45180b95fff6dc19f5f7b", "width": 300}, {"height": 60, "url": "https://mosaic.scdn.co/60/ab67616d00001e02373b24148204b38d135e753fab67616d00001e026a81da932758060c47773764ab67616d00001e02d869105c7df379b1b634c6b4ab67616d00001e02d9f45180b95fff6dc19f5f7b", "width": 60}], "name": "心得", "owner": {"display_name": "きんぐらいおん", "external_urls": {"spotify": "https://open.spotify.com/user/312fjicau5aq2mkovfowxyjqyzwu"}, "href": "https://api.spotify.com/v1/users/312fjicau5aq2mkovfowxyjqyzwu", "id": "312fjicau5aq2mkovfowxyjqyzwu", "type": "user", "uri": "spotify:user:312fjicau5aq2mkovfowxyjqyzwu"}, "primary_color": null, "public": true, "snapshot_id": "AAAADGiHAFK9YNGIJetLe2yDP5gxgAGf", "tracks": {"href": "https://api.spotify.com/v1/playlists/5lIvCObYKtMmob4FWhz3Nb/tracks", "total": 11}, "type": "playlist", "uri": "spotify:playlist:5lIvCObYKtMmob4FWhz3Nb"}, {"collaborative": false, "description": "Find our playlist with these keywords: mtv hits 2025 - top 40 songs 2025 - mtv chart music 2025 - mtv top 40 hits - best mtv songs 2025 - mtv music hits 2025 - mtv hits song 2025 - top mtv songs this week - mtv top 40 songs 2025 -  mtv playlist 2025 - mtv mix 2025 - popular mtv songs 2025", "external_urls": {"spotify": "https://open.spotify.com/playlist/63kos3TVth7pSr7NKwSMsS"}, "href": "https://api.spotify.com/v1/playlists/63kos3TVth7pSr7NKwSMsS", "id": "63kos3TVth7pSr7NKwSMsS", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da84b4ed7e3ed7a6bf7f343f5e36", "width": null}], "name": "MTV Charts Top 40 2025", "owner": {"display_name": "Redlist - Obsidian Drop", "external_urls": {"spotify": "https://open.spotify.com/user/5myg75bezgfdy3k7chapzj3pr"}, "href": "https://api.spotify.com/v1/users/5myg75bezgfdy3k7chapzj3pr", "id": "5myg75bezgfdy3k7chapzj3pr", "type": "user", "uri": "spotify:user:5myg75bezgfdy3k7chapzj3pr"}, "primary_color": null, "public": true, "snapshot_id": "AAAPQFlBq3TJyJ2r0m7HDPWWVf1u07UL", "tracks": {"href": "https://api.spotify.com/v1/playlists/63kos3TVth7pSr7NKwSMsS/tracks", "total": 40}, "type": "playlist", "uri": "spotify:playlist:63kos3TVth7pSr7NKwSMsS"}, {"collaborative": false, "description": "", "external_urls": {"spotify": "https://open.spotify.com/playlist/2rmrZ87MjhZSoQqWlJLY9p"}, "href": "https://api.spotify.com/v1/playlists/2rmrZ87MjhZSoQqWlJLY9p", "id": "2rmrZ87MjhZSoQqWlJLY9p", "images": [{"height": 640, "url": "https://mosaic.scdn.co/640/ab67616d00001e02096ad9e56b3519b68d127c3aab67616d00001e02a5d3da533d774bbd2ba8b24fab67616d00001e02ac6cf1f54f6288a7565e111dab67616d00001e02df4f7f5c2abda3acb71f5a33", "width": 640}, {"height": 300, "url": "https://mosaic.scdn.co/300/ab67616d00001e02096ad9e56b3519b68d127c3aab67616d00001e02a5d3da533d774bbd2ba8b24fab67616d00001e02ac6cf1f54f6288a7565e111dab67616d00001e02df4f7f5c2abda3acb71f5a33", "width": 300}, {"height": 60, "url": "https://mosaic.scdn.co/60/ab67616d00001e02096ad9e56b3519b68d127c3aab67616d00001e02a5d3da533d774bbd2ba8b24fab67616d00001e02ac6cf1f54f6288a7565e111dab67616d00001e02df4f7f5c2abda3acb71f5a33", "width": 60}], "name": "きっかけ", "owner": {"display_name": "zwnotv55qhfihcr9szmrw8z3u", "external_urls": {"spotify": "https://open.spotify.com/user/zwnotv55qhfihcr9szmrw8z3u"}, "href": "https://api.spotify.com/v1/users/zwnotv55qhfihcr9szmrw8z3u", "id": "zwnotv55qhfihcr9szmrw8z3u", "type": "user", "uri": "spotify:user:zwnotv55qhfihcr9szmrw8z3u"}, "primary_color": null, "public": true, "snapshot_id": "AAAAEw/lGBorMRaDgWUBuSryEBCoYLUQ", "tracks": {"href": "https://api.spotify.com/v1/playlists/2rmrZ87MjhZSoQqWlJLY9p/tracks", "total": 18}, "type": "playlist", "uri": "spotify:playlist:2rmrZ87MjhZSoQqWlJLY9p"}, {"collaborative": false, "description": "Find our playlist with these keywords: 70s 80s 90s disco songs - 70s 80s 90s disco music - disco hits 70 80 90s - disco music 70 80 90 hits - old disco songs 70s 80s 90s - 70s 80s 90s disco mix - throwback disco songs - 70 80 90 disco music hits - best disco 70 80 90 - disco music 70 80 90 playlist", "external_urls": {"spotify": "https://open.spotify.com/playlist/6UX8HY0jg3w9ZU1ESn9s4f"}, "href": "https://api.spotify.com/v1/playlists/6UX8HY0jg3w9ZU1ESn9s4f", "id": "6UX8HY0jg3w9ZU1ESn9s4f", "images": [{"height": null, "url": "https://image-cdn-ak.spotifycdn.com/image/ab67706c0000d72cfca666145b31c4ada6570238", "width": null}], "name": "70 80 90 Disco Music - Best Disco Hits 70's 80's & 90's (Playlist Updated in 2025)", "owner": {"display_name": "Redlist - Fresh Charts", "external_urls": {"spotify": "https://open.spotify.com/user/mg14jl14tabxkiz10eifwgz8z"}, "href": "https://api.spotify.com/v1/users/mg14jl14tabxkiz10eifwgz8z", "id": "mg14jl14tabxkiz10eifwgz8z", "type": "user", "uri": "spotify:user:mg14jl14tabxkiz10eifwgz8z"}, "primary_color": null, "public": true, "snapshot_id": "AAAf5f0QxoI0/Zzb6ukiLTkoqmYJ7WEg", "tracks": {"href": "https://api.spotify.com/v1/playlists/6UX8HY0jg3w9ZU1ESn9s4f/tracks", "total": 70}, "type": "playlist", "uri": "spotify:playlist:6UX8HY0jg3w9ZU1ESn9s4f"}, {"collaborative": false, "description": "", "external_urls": {"spotify": "https://open.spotify.com/playlist/5BXDnfOJUph6JSBbK1IprK"}, "href": "https://api.spotify.com/v1/playlists/5BXDnfOJUph6JSBbK1IprK", "id": "5BXDnfOJUph6JSBbK1IprK", "images": [{"height": 640, "url": "https://mosaic.scdn.co/640/ab67616d00001e02034978ba8766fa981213d347ab67616d00001e0229b6bef6e16f5fa771be9d69ab67616d00001e02423fbcb4570fcf534bf5dc3cab67616d00001e026e90d684c5d1d31ec8f8f5cb", "width": 640}, {"height": 300, "url": "https://mosaic.scdn.co/300/ab67616d00001e02034978ba8766fa981213d347ab67616d00001e0229b6bef6e16f5fa771be9d69ab67616d00001e02423fbcb4570fcf534bf5dc3cab67616d00001e026e90d684c5d1d31ec8f8f5cb", "width": 300}, {"height": 60, "url": "https://mosaic.scdn.co/60/ab67616d00001e02034978ba8766fa981213d347ab67616d00001e0229b6bef6e16f5fa771be9d69ab67616d00001e02423fbcb4570fcf534bf5dc3cab67616d00001e026e90d684c5d1d31ec8f8f5cb", "width": 60}], "name": "🔰キーズ🔰", "owner": {"display_name": "Ash", "external_urls": {"spotify": "https://open.spotify.com/user/zp0vpnfmdkwbideofvg8h6pc0"}, "href": "https://api.spotify.com/v1/users/zp0vpnfmdkwbideofvg8h6pc0", "id": "zp0vpnfmdkwbideofvg8h6pc0", "type": "user", "uri": "spotify:user:zp0vpnfmdkwbideofvg8h6pc0"}, "primary_color": null, "public": true, "snapshot_id": "AAADFXhbIDPTSRB97pVfQmsMfzVgP7iC", "tracks": {"href": "https://api.spotify.com/v1/playlists/5BXDnfOJUph6JSBbK1IprK/tracks", "total": 228}, "type": "playlist", "uri": "spotify:playlist:5BXDnfOJUph6JSBbK1IprK"}]}}
================================== Ai Message ==================================

Here are some Spotify playlists that might match the partly cloudy evening in Tokyo today:

1. [2000 R&B Hits - Top R&B 2000s Songs (R&B 00s Popular Songs)](https://open.spotify.com/playlist/4h9dvquufDVDyGuYRHeu73) - A collection of popular R&B hits from the 2000s.

   ![2000 R&B Hits](https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da846bec525f6806268ab03bd4f1)

2. [This is 唾奇](https://open.spotify.com/playlist/6eGTDP6hh7zM4wR8HkHaiC) - A playlist featuring the artist 唾奇.

   ![This is 唾奇](https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da84b4f51e0b8131d5c2e6d5955e)

3. [Hip Hop 2000s Music - Best Hip Hop Hits of the 00s Playlist](https://open.spotify.com/playlist/0dMexqq0XIWS3QJ74z3ZhD) - A playlist of the best hip hop hits from the 2000s.

   ![Hip Hop 2000s Music](https://image-cdn-ak.spotifycdn.com/image/ab67706c0000d72c52f4e9a551e7d34e149b92c6)

4. [告白実行委員会 ストーリー順](https://open.spotify.com/playlist/03LCO2b1nGQKhuSfry6YrG) - A playlist featuring songs from the 告白実行委員会 series.

   ![告白実行委員会](https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da84b2782b828f8468e1d9ed322b)

5. [Best UK Drill of All Time](https://open.spotify.com/playlist/652TD735fW0JesE9VgHhzS) - A collection of iconic UK drill songs.

   ![Best UK Drill](https://image-cdn-ak.spotifycdn.com/image/ab67706c0000da848777444b04e93a5c72ad6926)

Feel free to explore these playlists and find the one that suits your mood for the evening!
Enter fullscreen mode Exit fullscreen mode
  • AIAgent was able to interpret given question, and then think proper procedure in order to answer.

  • AIAgent was able to fetch required information for the given question.

I want to know about Docker technology more.

What's up ?: I want to know about Docker technology more.
================================ Human Message =================================

I want to know about Docker technology more.
================================== Ai Message ==================================
Tool Calls:
  get_google_books (call_HfyyJ5wCRcOlFUrMTmufFEWR)
 Call ID: call_HfyyJ5wCRcOlFUrMTmufFEWR
  Args:
    keyword: Docker technology
================================= Tool Message =================================
Name: get_google_books

{"kind": "books#volumes", "totalItems": 1331, "items": [{"kind": "books#volume", "id": "BFsovgAACAAJ", "etag": "zQKPtCMbaHo", "selfLink": "https://www.googleapis.com/books/v1/volumes/BFsovgAACAAJ", "volumeInfo": {"title": "Docker", "authors": ["Adrian Mouat", "エイドリアンモウアット"], "publishedDate": "2016-08", "description": "Dockerを活用するために求められる知識・技術を総合的に解説。セキュリティやモニタリングと行った運用面まで踏み込んだ内容。", "industryIdentifiers": [{"type": "ISBN_10", "identifier": "4873117763"}, {"type": "ISBN_13", "identifier": "9784873117768"}], "readingModes": {"text": false, "image": false}, "pageCount": 384, "printType": "BOOK", "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "preview-1.0.0", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=BFsovgAACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=BFsovgAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=BFsovgAACAAJ&dq=Docker+technology&hl=&cd=1&source=gbs_api", "infoLink": "http://books.google.co.jp/books?id=BFsovgAACAAJ&dq=Docker+technology&hl=&source=gbs_api", "canonicalVolumeLink": "https://books.google.com/books/about/Docker.html?hl=&id=BFsovgAACAAJ"}, "saleInfo": {"country": "JP", "saleability": "NOT_FOR_SALE", "isEbook": false}, "accessInfo": {"country": "JP", "viewability": "NO_PAGES", "embeddable": false, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": false}, "webReaderLink": "http://play.google.com/books/reader?id=BFsovgAACAAJ&hl=&source=gbs_api", "accessViewStatus": "NONE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "Dockerを活用するために求められる知識・技術を総合的に解説。セキュリティやモニタリングと行った運用面まで踏み込んだ内容。"}}, {"kind": "books#volume", "id": "pgFj0AEACAAJ", "etag": "N7c4OJXring", "selfLink": "https://www.googleapis.com/books/v1/volumes/pgFj0AEACAAJ", "volumeInfo": {"title": "Docker/Kubernetes実践コンテナ開発入門改訂新版", "authors": ["山田明憲"], "publishedDate": "2024-02-24", "description": "話題のコンテナ技術、Docker/Kubernetesの基礎から実際にアプリケーションを作るまでを解説した入門書です。 Docker/Kubernetesを実際の現場で活用している著者が最新情報や実践スキルをわかりやすく解説します。 ローカル環境での検証はもちろん、Google Kubernetes Engineへのデプロイなどクラウドでの実践にも触れています。 コンテナを中心とした開発スタイル、実践的なCD(継続的デリバリー)入門など現場で本当に必要な知識が身につきます。 Docker/Kubernetesをきちんと本番で使うための王道的な解説を中心としつつ、CLIツールとしてDockerを導入したい、オンプレでKuberentesを使いたいといったニーズにも応える盛りだくさんの一冊です。", "industryIdentifiers": [{"type": "ISBN_10", "identifier": "4297140179"}, {"type": "ISBN_13", "identifier": "9784297140175"}], "readingModes": {"text": false, "image": false}, "pageCount": 0, "printType": "BOOK", "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "preview-1.0.0", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=pgFj0AEACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=pgFj0AEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=pgFj0AEACAAJ&dq=Docker+technology&hl=&cd=2&source=gbs_api", "infoLink": "http://books.google.co.jp/books?id=pgFj0AEACAAJ&dq=Docker+technology&hl=&source=gbs_api", "canonicalVolumeLink": "https://books.google.com/books/about/Docker_Kubernetes%E5%AE%9F%E8%B7%B5%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B.html?hl=&id=pgFj0AEACAAJ"}, "saleInfo": {"country": "JP", "saleability": "NOT_FOR_SALE", "isEbook": false}, "accessInfo": {"country": "JP", "viewability": "NO_PAGES", "embeddable": false, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": false}, "webReaderLink": "http://play.google.com/books/reader?id=pgFj0AEACAAJ&hl=&source=gbs_api", "accessViewStatus": "NONE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "話題のコンテナ技術、Docker/Kubernetesの基礎から実際にアプリケーションを作るまでを解説した入門書です。 ..."}}, {"kind": "books#volume", "id": "AVQPzgEACAAJ", "etag": "PbT6Hm6Mc64", "selfLink": "https://www.googleapis.com/books/v1/volumes/AVQPzgEACAAJ", "volumeInfo": {"title": "イラストでわかるDockerとKubernetes", "authors": ["徳永航平"], "publishedDate": "2020-12", "description": "イラストでDockerやKubernetesを直観的に理解。DockerとKubernetesがコンピュータの中で、どのように動いているのか、その仕組みを著者自らが描いたイラストで徹底解説。明解に視覚化されることで、新しい概念がわかり、この技術の本質がわかり、ITが導くビジネスの未来がわかる!", "industryIdentifiers": [{"type": "ISBN_10", "identifier": "4297118378"}, {"type": "ISBN_13", "identifier": "9784297118372"}], "readingModes": {"text": false, "image": false}, "pageCount": 148, "printType": "BOOK", "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "preview-1.0.0", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=AVQPzgEACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=AVQPzgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=AVQPzgEACAAJ&dq=Docker+technology&hl=&cd=3&source=gbs_api", "infoLink": "http://books.google.co.jp/books?id=AVQPzgEACAAJ&dq=Docker+technology&hl=&source=gbs_api", "canonicalVolumeLink": "https://books.google.com/books/about/%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8BDocker%E3%81%A8Kuberne.html?hl=&id=AVQPzgEACAAJ"}, "saleInfo": {"country": "JP", "saleability": "NOT_FOR_SALE", "isEbook": false}, "accessInfo": {"country": "JP", "viewability": "NO_PAGES", "embeddable": false, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": false}, "webReaderLink": "http://play.google.com/books/reader?id=AVQPzgEACAAJ&hl=&source=gbs_api", "accessViewStatus": "NONE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "イラストでDockerやKubernetesを直観的に理解。DockerとKubernetesがコンピュータの中で、どのように動いているのか、その仕組みを著者自らが描いたイラストで徹底解説。明解に視覚化 ..."}}, {"kind": "books#volume", "id": "b9ibzQEACAAJ", "etag": "OjsBOtj40TQ", "selfLink": "https://www.googleapis.com/books/v1/volumes/b9ibzQEACAAJ", "volumeInfo": {"title": "たった1日で基本が身に付く! Docker/Kubernetes超入門", "authors": ["伊藤裕一"], "publishedDate": "2020-07", "description": "この一冊でわかる!コンテナ&マイクロサービスの開発方法を丁寧に解説!1単元=1時間。基本の知識をこの1冊で!", "industryIdentifiers": [{"type": "ISBN_10", "identifier": "4297114283"}, {"type": "ISBN_13", "identifier": "9784297114282"}], "readingModes": {"text": false, "image": false}, "pageCount": 256, "printType": "BOOK", "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "preview-1.0.0", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=b9ibzQEACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=b9ibzQEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=b9ibzQEACAAJ&dq=Docker+technology&hl=&cd=4&source=gbs_api", "infoLink": "http://books.google.co.jp/books?id=b9ibzQEACAAJ&dq=Docker+technology&hl=&source=gbs_api", "canonicalVolumeLink": "https://books.google.com/books/about/%E3%81%9F%E3%81%A3%E3%81%9F1%E6%97%A5%E3%81%A7%E5%9F%BA%E6%9C%AC%E3%81%8C%E8%BA%AB%E3%81%AB%E4%BB%98%E3%81%8F_Do.html?hl=&id=b9ibzQEACAAJ"}, "saleInfo": {"country": "JP", "saleability": "NOT_FOR_SALE", "isEbook": false}, "accessInfo": {"country": "JP", "viewability": "NO_PAGES", "embeddable": false, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": false}, "webReaderLink": "http://play.google.com/books/reader?id=b9ibzQEACAAJ&hl=&source=gbs_api", "accessViewStatus": "NONE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "この一冊でわかる!コンテナ&amp;マイクロサービスの開発方法を丁寧に解説!1単元=1時間。基本の知識をこの1冊で!"}}, {"kind": "books#volume", "id": "neWpDAAAQBAJ", "etag": "9+JtuWLyw0o", "selfLink": "https://www.googleapis.com/books/v1/volumes/neWpDAAAQBAJ", "volumeInfo": {"title": "Docker実戦活用ガイド", "authors": ["吉岡恒夫", "paiza"], "publisher": "マイナビ出版", "publishedDate": "2016-05-30", "description": "月間200万コンテナを実現!開発現場のDocker活用テクニック Dockerは必要十分な機能が凝縮されたコンテナ環境で、しっかりとしてわかりやすい概念・アーキテクチャの上にシンプルで使いやすくまとまっています。全体がアプリケーション指向で統一されており、かといって使い方を強制するわけでもありません。個々の機能は独立しており、必要に応じて自由に組み合わせて利用できます。この自由度が、Dockerと連携するツールのエコシステムが生み、またその中でのベストプラクティスをDocker自身が取り込むことでも発展しています。 本書では、筆者がDockerを利用して開発するなかで得た経験を元に解説を行います。新しい技術を習得するには、実際に手を動かし試してみることが一番です。Docker自身もそのような試行錯誤を簡単に行うためにも使えるツールです。そのため、なるべく実際の利用例を挙げ、試しながら学べるようパソコン(Windows, Mac)での利用も想定しています。Dockerの利用目的としては、一般的にアプリケーションのデプロイなどがあげられますが、自由度が高いDockerには様々な可能性があります。 Dockerの概念・動作・利用方法を理解して自由に使え、さまざまな用途で応用できるようになることが本書の目的です。", "industryIdentifiers": [{"type": "ISBN_13", "identifier": "9784839959234"}, {"type": "ISBN_10", "identifier": "4839959234"}], "readingModes": {"text": false, "image": true}, "pageCount": 260, "printType": "BOOK", "categories": ["Technology & Engineering"], "maturityRating": "NOT_MATURE", "allowAnonLogging": true, "contentVersion": "0.3.2.0.preview.1", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=neWpDAAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=neWpDAAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=neWpDAAAQBAJ&pg=PA11&dq=Docker+technology&hl=&cd=5&source=gbs_api", "infoLink": "http://books.google.co.jp/books?id=neWpDAAAQBAJ&dq=Docker+technology&hl=&source=gbs_api", "canonicalVolumeLink": "https://books.google.com/books/about/Docker%E5%AE%9F%E6%88%A6%E6%B4%BB%E7%94%A8%E3%82%AC%E3%82%A4%E3%83%89.html?hl=&id=neWpDAAAQBAJ"}, "saleInfo": {"country": "JP", "saleability": "NOT_FOR_SALE", "isEbook": false}, "accessInfo": {"country": "JP", "viewability": "PARTIAL", "embeddable": true, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": true, "acsTokenLink": "http://books.google.co.jp/books/download/Docker%E5%AE%9F%E6%88%A6%E6%B4%BB%E7%94%A8%E3%82%AC%E3%82%A4%E3%83%89-sample-pdf.acsm?id=neWpDAAAQBAJ&format=pdf&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api"}, "webReaderLink": "http://play.google.com/books/reader?id=neWpDAAAQBAJ&hl=&source=gbs_api", "accessViewStatus": "SAMPLE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "... <b>Docker</b> は、 git のようなバージョン管理機能を提供します。 <b>Docker</b> イメージが作られるまでの履歴をたどることができ、イメージの差分更新もできます。※ 3 What does <b>Docker technology</b> add to just plain LXC ? ( https://docs.<b>docker</b>.com/engine/faq&nbsp;..."}}, {"kind": "books#volume", "id": "hFFUDwAAQBAJ", "etag": "aSzJF3MJI28", "selfLink": "https://www.googleapis.com/books/v1/volumes/hFFUDwAAQBAJ", "volumeInfo": {"title": "コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤", "authors": ["青山 尚暉", "市川 豊", "境川 章一郎", "佐藤 聖規", "須江 信洋", "前佛 雅人", "橋本 直哉", "平岡 大祐", "福田 潔", "矢野 哲朗", "山田 修司"], "publisher": "翔泳社", "publishedDate": "2018-03-15", "description": "Dockerだけでは終わらない?! コンテナ技術を実践的に使うための解説書! コンテナは主としてLinuxを分割し、複数のOSとして利用するもので、1つのコンピュータを分割して利用する技術の新潮流です。代表的コンテナ技術として「Docker」が注目されていますが、Docker単体で大規模なシステムを作ることは難しく、エンジニアリングそしてクラウドの世界ではさまざまなOSSプロダクトや技術が登場し注目されています。 【本書の特長】 ・システム技術の新潮流「コンテナ」のコンセプトと活用について入門 ・Dockerの基本的な概念からサービス化の手法を解説 ・注目の技術Kubernetesのコンセプトや活用方法も紹介 ・コンテナを使ったクラウドサービスGKE(Google Kubernetes Engine)やRancherなどのOSSを解説 ・IBM BluemixレッドハットのOpenShiftなどの企業プロダクトの動向も紹介 本書ではコンテナを現場で使うためのさまざまなノウハウを集めています。とくにコンテナの統合的操作/管理(オーケストレーション)はKubernetesを中心に大きく進歩しており、最新のサービス/OSS/製品などの活用法を具体的に紹介していきます。 クラウド時代のノウハウで、インフラ技術の最新トレンドを紹介します。 ※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。 ※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。 ※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。 ※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。 (翔泳社)", "industryIdentifiers": [{"type": "ISBN_13", "identifier": "9784798155746"}, {"type": "ISBN_10", "identifier": "4798155748"}], "readingModes": {"text": true, "image": true}, "pageCount": 471, "printType": "BOOK", "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "1.87.71.0.preview.3", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=hFFUDwAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=hFFUDwAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=hFFUDwAAQBAJ&printsec=frontcover&dq=Docker+technology&hl=&cd=6&source=gbs_api", "infoLink": "https://play.google.com/store/books/details?id=hFFUDwAAQBAJ&source=gbs_api", "canonicalVolumeLink": "https://play.google.com/store/books/details?id=hFFUDwAAQBAJ"}, "saleInfo": {"country": "JP", "saleability": "FOR_SALE", "isEbook": true, "listPrice": {"amount": 4378, "currencyCode": "JPY"}, "retailPrice": {"amount": 3940, "currencyCode": "JPY"}, "buyLink": "https://play.google.com/store/books/details?id=hFFUDwAAQBAJ&rdid=book-hFFUDwAAQBAJ&rdot=1&source=gbs_api", "offers": [{"finskyOfferType": 1, "listPrice": {"amountInMicros": 4378000000, "currencyCode": "JPY"}, "retailPrice": {"amountInMicros": 3940000000, "currencyCode": "JPY"}}]}, "accessInfo": {"country": "JP", "viewability": "PARTIAL", "embeddable": true, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": true, "acsTokenLink": "http://books.google.co.jp/books/download/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_%E3%83%99%E3%83%BC%E3%82%B9_%E3%82%AA%E3%83%BC%E3%82%B1%E3%82%B9%E3%83%88-sample-epub.acsm?id=hFFUDwAAQBAJ&format=epub&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api"}, "pdf": {"isAvailable": true, "acsTokenLink": "http://books.google.co.jp/books/download/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A_%E3%83%99%E3%83%BC%E3%82%B9_%E3%82%AA%E3%83%BC%E3%82%B1%E3%82%B9%E3%83%88-sample-pdf.acsm?id=hFFUDwAAQBAJ&format=pdf&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api"}, "webReaderLink": "http://play.google.com/books/reader?id=hFFUDwAAQBAJ&hl=&source=gbs_api", "accessViewStatus": "SAMPLE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "Dockerだけでは終わらない?! コンテナ技術を実践的に使うための解説書! コンテナは主としてLinuxを分割し、複数のOSとして利用するもので、1つのコンピュータを分割して利用する ..."}}, {"kind": "books#volume", "id": "WoI1jgEACAAJ", "etag": "N90OyJUr/74", "selfLink": "https://www.googleapis.com/books/v1/volumes/WoI1jgEACAAJ", "volumeInfo": {"title": "Docker実践入門", "subtitle": "コンテナ技術の基礎から応用まで", "authors": ["中井悦司"], "publishedDate": "2015-10-25", "industryIdentifiers": [{"type": "ISBN_10", "identifier": "4774176540"}, {"type": "ISBN_13", "identifier": "9784774176543"}], "readingModes": {"text": false, "image": false}, "pageCount": 187, "printType": "BOOK", "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "preview-1.0.0", "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=WoI1jgEACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=WoI1jgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=WoI1jgEACAAJ&dq=Docker+technology&hl=&cd=7&source=gbs_api", "infoLink": "http://books.google.co.jp/books?id=WoI1jgEACAAJ&dq=Docker+technology&hl=&source=gbs_api", "canonicalVolumeLink": "https://books.google.com/books/about/Docker%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80.html?hl=&id=WoI1jgEACAAJ"}, "saleInfo": {"country": "JP", "saleability": "NOT_FOR_SALE", "isEbook": false}, "accessInfo": {"country": "JP", "viewability": "NO_PAGES", "embeddable": false, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": false}, "webReaderLink": "http://play.google.com/books/reader?id=WoI1jgEACAAJ&hl=&source=gbs_api", "accessViewStatus": "NONE", "quoteSharingAllowed": false}}, {"kind": "books#volume", "id": "_uRkxAEACAAJ", "etag": "gIjCkOqI+m0", "selfLink": "https://www.googleapis.com/books/v1/volumes/_uRkxAEACAAJ", "volumeInfo": {"title": "みんなのDocker/Kubernetes", "authors": ["石澤基", "五十嵐綾", "大塚元央", "須田一輝", "稲津和磨"], "publishedDate": "2019-05-02", "description": "「なぜ?」からわかるDocker/Kubernetes再入門。ゼットラボエンジニア直伝!すばやいデプロイを支える実践ノウハウ。freee、Wantedly、CyberAgent、サイボウズの活用事例。", "industryIdentifiers": [{"type": "ISBN_10", "identifier": "429710461X"}, {"type": "ISBN_13", "identifier": "9784297104610"}], "readingModes": {"text": false, "image": false}, "pageCount": 191, "printType": "BOOK", "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "preview-1.0.0", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=_uRkxAEACAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=_uRkxAEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=_uRkxAEACAAJ&dq=Docker+technology&hl=&cd=8&source=gbs_api", "infoLink": "http://books.google.co.jp/books?id=_uRkxAEACAAJ&dq=Docker+technology&hl=&source=gbs_api", "canonicalVolumeLink": "https://books.google.com/books/about/%E3%81%BF%E3%82%93%E3%81%AA%E3%81%AEDocker_Kubernetes.html?hl=&id=_uRkxAEACAAJ"}, "saleInfo": {"country": "JP", "saleability": "NOT_FOR_SALE", "isEbook": false}, "accessInfo": {"country": "JP", "viewability": "NO_PAGES", "embeddable": false, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": false}, "webReaderLink": "http://play.google.com/books/reader?id=_uRkxAEACAAJ&hl=&source=gbs_api", "accessViewStatus": "NONE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "「なぜ?」からわかるDocker/Kubernetes再入門。ゼットラボエンジニア直伝!すばやいデプロイを支える実践ノウハウ。freee、Wantedly、CyberAgent、サイボウズの活用事例。"}}, {"kind": "books#volume", "id": "NEToCgAAQBAJ", "etag": "YAtz0ch86So", "selfLink": "https://www.googleapis.com/books/v1/volumes/NEToCgAAQBAJ", "volumeInfo": {"title": "プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化", "authors": ["WINGSプロジェクト 阿佐志保"], "publisher": "翔泳社", "publishedDate": "2015-11-19", "description": "従来、システム開発のプログラマは、顧客の業務要件を理解し、要件に応じた設計を行ない、プログラミング言語を使ってシステムを実装し、仕様通りの機能を持つかをテストすることが主なミッションでした。今日ではそれに加えて、構成管理ツールを使って、開発したシステムの実行環境のプロビジョニングなどを行なうケースも増え、ネットワーク設計やOSの導入、システム/データベースサーバなどのミドルウェアの設定やセキュリティといったインフラ構築の知識が求められています。 本書は、Linuxのコンテナ仮想化ツールであるDockerを使って、コードでインフラ環境を構築するための入門書です。開発環境や実行環境などインフラ構築「自動化」の経験がない開発者を対象に、おさえておきたいシステム基盤&インフラの基礎知識に加えて、Dockerによるインフラ構築と管理の方法をやさしく解説します。理解しにくいネットワークや仮想技術などのインフラの基礎概念を図解しながら、開発/実行環境を実際に構築することで、構成管理ツールを使ったインフラ構築の流れを解説していきます。 ・おさえておきたいシステム/インフラの知識 ・コンテナ仮想化技術とDocker ・Dockerのインストールと基本コマンド ・Dockerfileを使ったコードによるサーバ構築 ・Dockerイメージの共有─Docker Registry ・複数コンテナの一元管理─Docker Compose ・マルチホスト環境でのDocker運用─Docker Machine、Docker Swarm ・クラウドでのDocker運用 ※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。 ※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。 ※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。 ※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。 (翔泳社)", "industryIdentifiers": [{"type": "ISBN_13", "identifier": "9784798144627"}, {"type": "ISBN_10", "identifier": "4798144622"}], "readingModes": {"text": false, "image": true}, "pageCount": 315, "printType": "BOOK", "maturityRating": "NOT_MATURE", "allowAnonLogging": true, "contentVersion": "2.277.1.0.preview.1", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=NEToCgAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=NEToCgAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=NEToCgAAQBAJ&printsec=frontcover&dq=Docker+technology&hl=&cd=9&source=gbs_api", "infoLink": "https://play.google.com/store/books/details?id=NEToCgAAQBAJ&source=gbs_api", "canonicalVolumeLink": "https://play.google.com/store/books/details?id=NEToCgAAQBAJ"}, "saleInfo": {"country": "JP", "saleability": "FOR_SALE", "isEbook": true, "listPrice": {"amount": 3300, "currencyCode": "JPY"}, "retailPrice": {"amount": 2970, "currencyCode": "JPY"}, "buyLink": "https://play.google.com/store/books/details?id=NEToCgAAQBAJ&rdid=book-NEToCgAAQBAJ&rdot=1&source=gbs_api", "offers": [{"finskyOfferType": 1, "listPrice": {"amountInMicros": 3300000000, "currencyCode": "JPY"}, "retailPrice": {"amountInMicros": 2970000000, "currencyCode": "JPY"}}]}, "accessInfo": {"country": "JP", "viewability": "PARTIAL", "embeddable": true, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": true, "acsTokenLink": "http://books.google.co.jp/books/download/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDocker%E6%95%99%E7%A7%91-sample-pdf.acsm?id=NEToCgAAQBAJ&format=pdf&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api"}, "webReaderLink": "http://play.google.com/books/reader?id=NEToCgAAQBAJ&hl=&source=gbs_api", "accessViewStatus": "SAMPLE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "従来、システム開発のプログラマは、顧客の業務要件を理解し、要件に応じた設計を行ない、プログラミング言語を使ってシステムを実装し、仕様通りの機能を持つかをテストす ..."}}, {"kind": "books#volume", "id": "6O83EAAAQBAJ", "etag": "orQ6lDmoZAg", "selfLink": "https://www.googleapis.com/books/v1/volumes/6O83EAAAQBAJ", "volumeInfo": {"title": "Dockerコンテナ開発・環境構築の基本", "authors": ["市川豊"], "publisher": "インプレス", "publishedDate": "2021-07-27", "description": "2017年から2018年にかけて、コンテナ型仮想化技術を実現するDockerやコンテナアプリケーション基盤を支える、Kubernetesを始めとするコンテナアプリケーション開発プラットフォームに関連するマネージドサービスが、クラウドプロバイダーやベンダー企業からリリースされています。それに伴い、従来のアプリケーション開発からコンテナアプリケーション開発へとシフトし始めています。 コンテナアプリケーション開発は、基盤や運用を含め一つのパラダイムシフトでもあり、従来のアプリケーション開発とは、さまざまな点において異なります。本書では、プリケーションエンジニア、インフラエンジニア、オペレーションエンジニアの方々を対象に、これまでのアプリケーション開発とコンテナアプリケーション開発の違い、コンテナアプリケーション開発に必要となるDocker、Kubernetesや自動化で必要となるCI/CD、コンテナアプリケーションの運用方法を基本から解説しています。 発行:インプレス", "industryIdentifiers": [{"type": "ISBN_13", "identifier": "9784295011736"}, {"type": "ISBN_10", "identifier": "4295011738"}], "readingModes": {"text": false, "image": true}, "pageCount": 320, "printType": "BOOK", "categories": ["Computers"], "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "0.1.1.0.preview.1", "panelizationSummary": {"containsEpubBubbles": false, "containsImageBubbles": false}, "imageLinks": {"smallThumbnail": "http://books.google.com/books/content?id=6O83EAAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api", "thumbnail": "http://books.google.com/books/content?id=6O83EAAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"}, "language": "ja", "previewLink": "http://books.google.co.jp/books?id=6O83EAAAQBAJ&printsec=frontcover&dq=Docker+technology&hl=&cd=10&source=gbs_api", "infoLink": "https://play.google.com/store/books/details?id=6O83EAAAQBAJ&source=gbs_api", "canonicalVolumeLink": "https://play.google.com/store/books/details?id=6O83EAAAQBAJ"}, "saleInfo": {"country": "JP", "saleability": "FOR_SALE", "isEbook": true, "listPrice": {"amount": 3300, "currencyCode": "JPY"}, "retailPrice": {"amount": 2970, "currencyCode": "JPY"}, "buyLink": "https://play.google.com/store/books/details?id=6O83EAAAQBAJ&rdid=book-6O83EAAAQBAJ&rdot=1&source=gbs_api", "offers": [{"finskyOfferType": 1, "listPrice": {"amountInMicros": 3300000000, "currencyCode": "JPY"}, "retailPrice": {"amountInMicros": 2970000000, "currencyCode": "JPY"}}]}, "accessInfo": {"country": "JP", "viewability": "PARTIAL", "embeddable": true, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": {"isAvailable": false}, "pdf": {"isAvailable": true, "acsTokenLink": "http://books.google.co.jp/books/download/Docker%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B%E7%99%BA_%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%81%AE-sample-pdf.acsm?id=6O83EAAAQBAJ&format=pdf&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api"}, "webReaderLink": "http://play.google.com/books/reader?id=6O83EAAAQBAJ&hl=&source=gbs_api", "accessViewStatus": "SAMPLE", "quoteSharingAllowed": false}, "searchInfo": {"textSnippet": "2017年から2018年にかけて、コンテナ型仮想化技術を実現するDockerやコンテナアプリケーション基盤を支える、Kubernetesを始めとするコンテナアプリケーション開発プラットフォーム ..."}}]}
================================== Ai Message ==================================

Here are some books that can help you learn more about Docker technology:

1. **Docker** by Adrian Mouat
   - Description: This book provides a comprehensive explanation of the knowledge and skills required to utilize Docker effectively, including aspects of security and monitoring.
   - [More Info](https://books.google.com/books/about/Docker.html?id=BFsovgAACAAJ)

2. **Docker/Kubernetes実践コンテナ開発入門改訂新版** by 山田明憲
   - Description: An introductory book that explains the basics of container technology, Docker, and Kubernetes, and guides you through creating applications.
   - [More Info](https://books.google.com/books/about/Docker_Kubernetes%E5%AE%9F%E8%B7%B5%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B.html?id=pgFj0AEACAAJ)

3. **イラストでわかるDockerとKubernetes** by 徳永航平
   - Description: Understand Docker and Kubernetes intuitively through illustrations that explain how they work inside computers.
   - [More Info](https://books.google.com/books/about/%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8BDocker%E3%81%A8Kuberne.html?id=AVQPzgEACAAJ)

4. **たった1日で基本が身に付く! Docker/Kubernetes超入門** by 伊藤裕一
   - Description: A book that explains the development methods of containers and microservices in a detailed manner, designed to be understood in a single day.
   - [More Info](https://books.google.com/books/about/%E3%81%9F%E3%81%A3%E3%81%9F1%E6%97%A5%E3%81%A7%E5%9F%BA%E6%9C%AC%E3%81%8C%E8%BA%AB%E3%81%AB%E4%BB%98%E3%81%8F_Do.html?id=b9ibzQEACAAJ)

5. **Docker実戦活用ガイド** by 吉岡恒夫
   - Description: A practical guide to using Docker, based on the author's experience in development, with examples and hands-on learning.
   - [More Info](https://books.google.com/books/about/Docker%E5%AE%9F%E6%88%A6%E6%B4%BB%E7%94%A8%E3%82%AC%E3%82%A4%E3%83%89.html?id=neWpDAAAQBAJ)

These books cover a range of topics from basic introductions to more advanced practical applications of Docker and Kubernetes.
Enter fullscreen mode Exit fullscreen mode
  • AIAgent was able to interpret given question, and then fetch required information via a proper function.

I have to prepare for my trip to France next month.

What's up ?: I have to prepare for my trip to France next month.
================================ Human Message =================================

I have to prepare for my trip to France next month.
================================== Ai Message ==================================

That sounds exciting! Preparing for a trip to France involves several steps. Here are some things you might want to consider:

1. **Travel Documents**: Ensure your passport is valid for at least six months beyond your planned departure date. Check if you need a visa to enter France.

2. **Flights and Accommodation**: Book your flights and accommodation in advance. Consider what cities or regions you want to visit, such as Paris, the French Riviera, or the Loire Valley.

3. **Transportation**: Decide how you'll get around. France has an excellent train network, and renting a car is an option if you plan to explore rural areas.

4. **Itinerary**: Plan your itinerary. Consider what attractions you want to see, such as the Eiffel Tower, Louvre Museum, or Mont Saint-Michel.

5. **Language**: Brush up on some basic French phrases. While many people in France speak English, knowing some French can enhance your experience.

6. **Currency**: The currency in France is the Euro. Make sure you have a plan for accessing money, whether through credit cards or cash.

7. **Packing**: Consider the weather in France during your visit and pack accordingly. Don't forget essentials like adapters for your electronics.

8. **Travel Insurance**: Consider purchasing travel insurance for peace of mind.

9. **Local Customs and Etiquette**: Familiarize yourself with French customs and etiquette to ensure a respectful and enjoyable visit.

If you need specific information, such as hotel recommendations, weather forecasts, or things to do, feel free to ask!
Enter fullscreen mode Exit fullscreen mode
  • AIAgent was not able to fetch information regarding the given question. But it can’t be helped, because the given question does not require some information clearly. It’s actually a little like human-like.

  • Based on above description, some improvements may be needed to translate abstract given questions into some clear requirements in the case of embedding AIAgent to sytems which require high response performance.

6. Consideration

I found AIAgent can able to control flow better than I expected before.
And also, I realized some AIAgent-specific improvements are needed when I embed it to real systems.
I'd like to continue to follow the trends in LLM technology and verify any topics that interest me through actual testing.

Reference

What is an AI agent?

Top comments (0)