民宿客服 agent 用 Jev 一次并行问十个分类问题
短租运营 agent 用 Jev 把「要不要回、是否紧急、是否需人工、属于哪类工单」等十个判断合并成一次调用,替代原先大量串行请求。
Sure! Basically, this agent is doing about 95% of operations at this point. Most of this is guest communication. The corpus was built off of four years of operations history from text messages and messages over different booking providers (Airbnb, booking, vrbo, etc.). It can also read transcribed voicemails. Whenever there is a booking or reservation change, a webhook is sent, and a Cloudflare D1 index is updated accordingly. Using CF durable objects for each guest stay, including an inbox. It also receives webhooks for all lock events, so it can detect things like lockouts or when the guest got in after a lockout. So a guest messages in, and then the messages will be classified. Either it is an “FAQ” meaning a question that can be answered (e.g. what’s the wifi password, how do I get to the beach, any restaurant recommendations), or it is something that requires a workflow (e.g. guest lockout, guest request, repair, wifi troubleshooting, noise complaint, etc.) So the first thing it does is classify the messages coming in. With Jev, this is a game changer because you can ask ten questions at one, “does this need a response? Is this an emergency? Does a human need to look? Is this message associated with any active workflows? What type of message is this?” This was one of the hardest problems to solve previously. It took a lot of serial calls. Once it determines if it’s an FAQ or associated with workflow, or opening new workflow, then it just works through it. So a guest could message “hey my code isn’t working”, but by then, the system already knows because it’s detected a lockout. The workflow itself for the lockout scenario is really extensive. For example someone could be trying to get in at 2pm but their checkin time is 3pm. So, it will handle all of these scenarios. If it’s an early checkin, it’ll look to see if the room was accessed by cleaners. If so, it will assume it’s clean and give the guest a temporary code to get in. But this one workflow in particular has so many states and so many checks. Other workflows are noise complaints, which are usually from adjacent neighbors, so in that workflow, it’ll get more information from them on what kind of sound, determine if it’s after 10pm, unless it’s a dog, then it’ll work with them to figure out which neighbor, then it’ll message that guest, then again in 15m, 30m, 45m if it doesn’t get a respond. It’ll give the person who complained an update. What’s also cool about the classification is it’s hard to confuse the agent. You could be in the middle of talking about a lockout, and then ask for gluten free restaurant recommendations. It’ll determine that message is not associated with a workflow and answer you. The “concierge” part of it is pretty cool. Once a month, it grabs all close by restaurants, then puts them in a queue, then a crawler will go out and grab their menu and index it. So it can answer questions like the gluten free one since it’s read every menu. Same for activities and points of interest. Works really well, but the fundamental design is very simple. Either it’s an FAQ or workflow, so classification is a really important part of that. It was all custom built classifiers before. Jev is a huge improvement.