{"title":"The Librarian","description":"Helps you find the right book.","version":"0.0.1","nodes":[{"type":"input","id":"input","configuration":{"schema":{"properties":{"context":{"type":"array","title":"Context","examples":[],"items":{"type":"object","behavior":["llm-content"]},"default":"[{\"role\":\"user\",\"parts\":[{\"text\":\"\"}]}]","description":"What book are you looking for?"}},"type":"object","required":[]}},"metadata":{"visual":{"x":-315,"y":-99,"collapsed":"expanded"}}},{"id":"looper-b381bf13","type":"looper","metadata":{"visual":{"x":-78.99999999999977,"y":-99,"collapsed":"expanded"},"title":"Interview Planner","logLevel":"debug"},"configuration":{"task":{"role":"user","parts":[{"text":"Based on the initial topic, come up with the themes for 3-5 question interview to collect just enough information to look for an interesting book in the library. These themes will be presented as multiple choice questions with the last choice being an open-ended response."}]}}},{"id":"specialist-2551887d","type":"specialist","metadata":{"visual":{"x":-101,"y":305.0000000000002,"collapsed":"expanded"},"title":"Interviewer","logLevel":"debug"},"configuration":{"persona":{"role":"user","parts":[{"text":"You are an expert researcher, whose job it is to interview the user to collect information about the kind of book they want. Based on the theme provided and incorporating the history of the interview so far, offer a question that allows the user to easily pick or quickly type an answer."}]}}},{"id":"specialist-27a12855","type":"specialist","metadata":{"visual":{"x":308,"y":-230.99999999999977,"collapsed":"expanded"},"title":"Researcher","logLevel":"debug"},"configuration":{"persona":{"role":"user","parts":[{"text":"You are a librarian. Based on the information collected from the interview, formulate the queries (more than one if necessary) and call (in parallel) Google Books API to search for the right book for the user."}]},"tools":["https://breadboard.live/boards/@dimitri/tool-google-books.bgl.json"],"task":{"role":"user","parts":[{"text":"Make up to three parallel tool calls to Google Books API using different unique phrases to get the best results."}]}}},{"id":"human-8b77a262","type":"human","metadata":{"visual":{"x":307.0000000000002,"y":243.00000000000023,"collapsed":"expanded"},"title":"Asking user","logLevel":"debug"},"configuration":{"description":"Answer librarian's question","title":"User"}},{"type":"output","id":"output","configuration":{"schema":{"properties":{"context":{"type":"array","title":"Context","examples":[],"items":{"type":"object","behavior":["llm-content"]},"default":"null"}},"type":"object","required":[]}},"metadata":{"visual":{"x":1041,"y":-230,"collapsed":"expanded"}}},{"id":"specialist-8928cd1a","type":"specialist","metadata":{"visual":{"x":675.0000000000002,"y":-230.99999999999977,"collapsed":"expanded"},"title":"Summarizer","logLevel":"debug"},"configuration":{"persona":{"role":"user","parts":[{"text":"You are an expert librarian. You take the raw book search results from multiple queries and the interview information that was collected, and come up with a list of book recommendations."}]},"task":{"role":"user","parts":[{"text":"Come up with a list of 5-7 recommendations. Reply in markdown, making book titles hyperlinks to the book's canonicalVolumeLink and use smallThumbnail to display the book's thumbnail. "}]}}}],"edges":[{"from":"looper-b381bf13","to":"specialist-2551887d","in":"in","out":"loop"},{"from":"input","to":"looper-b381bf13","in":"context","out":"context"},{"from":"specialist-2551887d","to":"human-8b77a262","in":"context","out":"out"},{"from":"human-8b77a262","to":"looper-b381bf13","in":"context","out":"context"},{"from":"looper-b381bf13","to":"specialist-27a12855","in":"in","out":"done"},{"from":"specialist-27a12855","to":"specialist-8928cd1a","out":"out","in":"in"},{"from":"specialist-8928cd1a","to":"output","out":"out","in":"context"}],"url":"https://breadboard.live/boards/@dimitri/librarian.bgl.json","metadata":{"comments":[{"id":"comment-62f8bec6","text":"Comes up with a plan for a short (3-5 question) interview based on the initial topic, then runs the loop through\nall steps of the plan.","metadata":{"visual":{"x":-79,"y":-247.99999999999977,"collapsed":"expanded"}}},{"id":"comment-a4d85fb6","text":"Starts by asking\nfor the topic.","metadata":{"visual":{"x":-315,"y":-186,"collapsed":"expanded"}}},{"id":"comment-b9f31568","text":"Formulates a question based on the current step of the plan and the interview answers so far. ","metadata":{"visual":{"x":-99,"y":184.00000000000023,"collapsed":"expanded"}}},{"id":"comment-850bcb3a","text":"Based on the interview results, formulates and makes 3 varying queries\nto Google Books API.","metadata":{"visual":{"x":307.0000000000002,"y":-357.9999999999999,"collapsed":"expanded"}}},{"id":"comment-4acc26c4","text":"Hands control over to the user, letting the user respond to the interview question.","metadata":{"visual":{"x":311.0000000000002,"y":482.0000000000002,"collapsed":"expanded"}}},{"id":"comment-1b9968a5","text":"Summarizes the results and formats them nicely for final output.","metadata":{"visual":{"x":675.0000000000002,"y":-338.9999999999999,"collapsed":"expanded"}}},{"id":"comment-b01c469b","text":"Ends by presenting\nrecommendations.","metadata":{"visual":{"x":1025,"y":-319,"collapsed":"expanded"}}},{"id":"comment-83b726df","text":"📚 THE LIBRARIAN 📚\nHelps you find\nthe next book \nor your reading list.","metadata":{"visual":{"x":-314,"y":44.00000000000023,"collapsed":"expanded"}}},{"id":"comment-edeb1a7c","text":"< goes back to planner","metadata":{"visual":{"x":307.0000000000002,"y":107.00000000000023,"collapsed":"expanded"}}}],"tags":["tool","published"]}}