The Agentic AI Engineer - Benedikt Sanftl, Mutagent
AI Engineer · 2026-06-29 · 34м 50с · 4 784 просмотров · YouTube ↗
Топики: ai-agent-orchestration
🎧 Аудио
📝 Summary
model=deepseek-v4-flash · prompt=summary-v7 · 6 667→3 121 tokens · 2026-07-20 13:37:39
🎯 Главная суть
Разработка AI-агентов требует постоянного итеративного цикла: создание, тестирование, мониторинг, оптимизация. Когда агентов становится много, ручное выполнение этого цикла перестаёт масштабироваться — человек становится узким местом. Решение — автоматизировать весь конвейер с помощью набора специализированных агентов (spec-агент, evaluator-агент, diagnostics-агент, optimizer-агент), которые образуют «агентного AI-инженера». Это позволяет ускорить итерации, сократить время до продакшена и повысить надёжность за счёт непрерывного автономного цикла улучшения.
🔄 Проблема ручного цикла разработки агентов
Традиционный жизненный цикл разработки агента состоит из offline-петли (разработка) и online-петли (мониторинг в продакшене). В offline-петле разработчик: получает задачу (issue) → вносит изменения (возможно, с помощью coding-агента) → генерирует тестовые сэмплы → вручную просматривает трейсы и оценивает результат → при успехе выкатывает в продакшен. После деплоя начинается online-петля: мониторинг, ручной разбор ошибок, доработка. Проблема в том, что каждый этап требует человеческого внимания. Если в организации планируется запустить сотни агентов, такой подход не масштабируется: время цикла растёт линейно, а bottleneck — человек. Единственный способ увеличить пропускную способность — передать рутинные шаги самим агентам, чтобы за одно и то же время выполнялось гораздо больше итераций.
📋 Спецификация (Spec) — основа разработки
Первый этап — создание чёткой спецификации агента, даже если он строится с нуля. В спецификации фиксируются:
- контекст и требования среды;
- интеграции и инструменты, которые агент должен использовать;
- его обязанности (jobs to be done) и границы (что агент делать не будет);
- критерии успеха (success criteria).
Spec служит «синим чертежом» для всей последующей разработки; он отделён от деталей реализации. Это критически важно, потому что фреймворки и платформы для агентов быстро меняются (появились Hermes, Deep Agents и др.). Через год может потребоваться сменить harness или runtime — спецификация остаётся неизменной, а реализация адаптируется под новую платформу. Из спецификации coding-агент (например, Claude Code) генерирует первую версию агента, уже адаптированную под выбранный target.
🧪 Разработка через eval (Eval-Driven Development)
После сборки агента начинается eval-driven development — аналог TDD, но для AI-агентов. Без чётких eval’ов невозможно определить, «хорош ли агент». Eval-набор состоит из метрик (критериев оценки) и датасета (примеры кейсов). Создать полный eval-набор с нуля сложно — невозможно заранее предугадать все краевые случаи. Поэтому правильный путь — это discovery: со временем на основе пользовательских отзывов и production-сбоев накапливаются новые критерии и тестовые примеры, представляющие сложные пограничные ситуации.
При оценке агентов важен не только финальный ответ, но и вся траектория выполнения: каждое обращение к инструменту, каждый промежуточный вывод. Даже один неверный tool output может испортить итоговый результат. Также влияет сам harness — его особенности могут кардинально менять поведение агента, и это ещё один вектор оптимизации.
Оценка должна быть полезной: score-based метрики («поставь оценку от 1 до 10») часто не дают actionable feedback. Гораздо эффективнее бинарные критерии («прошёл/не прошёл») с чётким указанием, что именно не так. Кроме того, LLM-as-judge решения нужно калибровать — из-за недетерминированности один и тот же judge может по-разному оценить один и тот же случай на разных запусках, что делает эксперименты ненадёжными.
📊 Диагностика и анализ корневых причин сбоев
После деплоя в продакшен агент генерирует трейсы. Ручное чтение миллионов трейсов — дороже самого выполнения. Необходимы автоматизированные методы. Процесс диагностики:
- Сбор failure modes (сбоев) из трейсов.
- Группировка по корневым причинам (root cause analysis). Причины могут быть в промпте, в отсутствующих или некорректно работающих инструментах.
- На основе найденных проблем генерируются новые eval’ы (чтобы в будущем детектировать такие же сбои) и предлагаются исправления.
В начале диагностика требует глубокого чтения LM-трейсов — это upfront cost. Но со временем для каждого failure mode накапливаются «код-проверяемые индикаторы»: специфические паттерны в содержимом трейса или последовательности вызовов инструментов, по которым можно быстро определить проблему, не читая весь трейс.
Важно не пытаться проанализировать все трейсы, а выбирать репрезентативную выборку с помощью умной сегментации и использования накопленных индикаторов.
⚙️ Автономная оптимизация на основе eval suite
Имея eval-набор и классифицированные failure modes, можно запустить автономный цикл оптимизации. Агент-оптимизатор варьирует компоненты агента (обновляет секции промпта, добавляет инструменты), проводит эксперименты и проверяет, достигаются ли целевые показатели eval’ов. Как только eval suite «зелёный» — новая версия автоматически выкатывается в продакшен. Затем снова идёт мониторинг (online loop), сбор новых сбоев, их диагностика и очередной цикл улучшений. Таким образом, агент непрерывно улучшается за счёт собственного production-опыта.
🧰 Набор агентов Mutagent: Evaluator и Diagnostics
Mutagent предлагает реализацию описанного цикла в виде набора агентов, работающих через оркестратор. Два агента уже в research preview:
- Evaluator agent — помогает построить качественный eval-набор, который является ядром eval-driven development.
- Diagnostics agent — анализирует production-трейсы, выявляет failure modes, проводит root cause analysis и предлагает исправления. Пользователь может запустить его прямо из терминала (например, из Claude Code) и получить структурированный HTML-отчёт.
Агенты подключаются к источникам данных: observability-платформы (LangFuse, локальные трейсы, JSON-логи), к тикет-системам, Slack (для сбора сообщений о сбоях). Целевые платформы для деплоя: GitHub PR, обновление .md-файлов, managed-сервисы. Всё работает в окружении пользователя (cloud/local) и управляется оркестратором, который диспетчеризирует суб-агентов по этапам.
🔬 Демонстрация работы диагностического агента
Burak показывает, как diagnostics agent работает в терминале. После команды diagnose (с указанием агента или скилла) он загружает трейсы из настроенного источника. Из-за дороговизны полного анализа агент применяет многоуровневую фильтрацию/сегментацию, чтобы выбрать репрезентативную выборку. LLM читает часть трейсов, находит очевидные проблемы, затем агент фокусируется на конкретном failure mode. Опционально можно задать конкретную проблему (guided search) — тогда агент найдёт все инциденты, связанные с ней.
Результат — HTML-отчёт, который содержит:
- сводку обнаруженных проблем и их частоту за указанный период;
- для каждой проблемы — описание, визуализацию root cause (recursive Y-chain), рекомендации по исправлению (remedies/fixes);
- блок assumptions — если у диагностического агента нет доступа к коду, он делает предположения, которые пользователь может поправить.
Пользователь выбирает подходящие исправления (множественный выбор), затем на странице решений подтверждает выбор (есть даже voice input для удобства). В конце генерируется markdown-файл с описанием задач для coding-агента, чтобы применить исправления.
🔁 Полный жизненный цикл: offline и online loop
В итоге весь процесс складывается в единый end-to-end цикл:
- Спецификация — определение требований.
- Сборка (build) — генерация кода агента coding-агентом.
- Оценка (eval) — прогон eval suite, итеративное улучшение, пока метрики не достигнуты.
- Деплой — выкат в продакшен.
- Мониторинг — сбор production-трейсов.
- Диагностика — автоматический root cause analysis.
- Оптимизация — генерация и применение исправлений.
- Цикл повторяется: новые failure modes пополняют eval suite, агент самообучается.
Чем больше production-данных, тем точнее eval’ы, тем лучше становится агент. Этот пайплайн можно полностью автоматизировать, оставив человеку роль дизайнера циклов и постановщика eval-критериев, а не ручного отладчика.
📜 Transcript
en · 4 139 слов · 77 сегментов · clean
Показать текст транскрипта
hi everybody welcome to our talk the agentic ai engineer i'm bene ceo and co-founder of mutagent and i'm here with my colleague hi i'm burak i'm the cto of mutagent and today we're basically gonna talk about loops and how the agentic ai engineer works so as you're all aware of now loops is the hot topic how you build software in an agentic loop And we apply the same loop to the building of AI agents. And as you're all aware, there's two concepts here. One is the offline loop, where while you build, you iterate on your agent, you test it, you evaluate it, you improve it, and you go on. And then you have a second loop, which we call the online loop, where once your agent is deployed to production, you monitor its traces, your diagnosis. and then you feed it back into your optimization loop uh yeah to iterate and have multiple versions of your agents yeah up to until now what we did was uh this doing this loop manually it's quite slow the life cycle is basically you have an issue you want to change something to your agent um yeah you implement the change you maybe vibe implement the change if you use coding agents for it You generate some samples for this new feature or issue to test it. Then you look at the result. You look through the traces. How does the outcome look like? Then you maybe ship it. You do A-B testing and all your feedback is kind of manually. It takes very long. And the bottleneck basically becomes the human review and the human building time. And yeah, that you can't scale, especially if in your organization you are now planning to roll out hundreds of agents, etc. Yeah, and yeah, this is why we think the agentic AI engineer is the natural next step to build agents. And I'll have Burak deep dive into how we improve timing and the road to production reliability with the agentic AI engineer. So yeah, the key thing here is basically once you reach a certain number of agents or AI-based features, the human performing this loop again cannot really scale in enough time. So this is why doing this agentically is the key to increasing the throughput because then you can fit many more cycles into the same time window. And now how that loop works is basically we have a few stages. So this is when you are starting from scratch, like the current software development practices, you first create a spec for your agent. or your skill in this case and here you need to define all the responsibilities and the functions that agents needs to handle the decisions that it has to make on certain conditions and here again this is only the definition stage Once you defined your agent's requirements, then you can finally go into the build, and build is where you then realize that spec in a specific harness or agent framework, or in these days, you could even build it as a cloud code or a codex agent. Then comes the next step. This is where you define clear evaluations to evaluate your agent's performance because these are the key metrics then where you can say, hey, my agent is functional or not. Can think of essentially equivalent to unit tests for coding. This is how you verify your agent works. Then after evaluation, if everything looks fine, you usually have the ship basically where you deploy this agent to production. Again, this can be a code update. This can be a direct update on any agent platform or again, your local harness agents. Then comes the online part. This is where then the agent is continuously monitored for issues and based on certain trigger conditions, then you can start automatic diagnostics. Again, this can be based on the volume of traces that your agent generates or weekly or daily jobs. Then we go into diagnosis stage. This is where you collect all the failures for your agents and do structured root cause analysis to then understand where the failures are coming from. Once you understand and categorize the failures, then you can finally go on to the optimization stage. This is where then you create. let's say very specific changes or mutations for your agents and to deal with the found failure modes and then the whole cycle repeats again you evaluate and if everything looks good then you can deploy again now we will maybe do a deep time on each stage what that entails then so before we continue burak We have two passes here. One is the cold start path, and one is basically existing features. Should we dive deeper for like half a minute on what the difference is here, what we see, and why this is important? Yeah, so today, if you, again, sit down to build an agent, there are two options. Either you already have an agent. It's built. It's already running somewhere. with a certain accuracy. However, the other option is, again, you are creating from scratch. So when you create from scratch, obviously you design with the spec and the conceptualization stage. If you have an existing feature, the most likely, again, the agent is there, but then you are optimizing over something that already exists. Okay, cool. Yeah, let's dive deeper into each phase. I mean, you just mentioned the specking of new building agents. So this seems to be an important artifact. So let's dive into it. Right. So with the spec-driven development, also prevalent for building software artifacts these days or any kind of coding agent workflows. Basically, the goal is to capture the requirements for the agent and especially the success criteria. The reason being apart from coding agents, the agents in other domains, they handle specific processes and this differs from company to company. So it's very specialized to the environment where the agent is in. And then the key point here is to clearly define which context requirements that the agent has, again, which integrations and tools it then needs to have, what are the jobs to be done or the responsibilities that the agent will handle and what it will not. And then finally, again, the constraints and in general, the boundaries for the agent. Now, once we can define a clear spec, as I said, it becomes like a blueprint for any future development, which then the implementation is held against. OK. And let's dive into how we would then build an agent from the spec, right? Right. So basically then the spec tells your coding agent what to build and then here the target platform choice is entirely yours because as I mentioned the agent space is very changing very rapidly these days. So the framework you are using today, you might want to change, you know, in a year or so. So essentially because of that, spec is isolated from the implementation detail. So once you decide to build, you can pick any target. Here then your coding agent of your choice will take that spec and give you an initial version of that agent, which is then basically customized to run on any platform that you see fit. Why would I want to change the platform in a year down the line? So what did we learn out of experience here? Again, Building agents for the last three years, sometimes the agent framework or the harness does not always have the capabilities. So occasionally you hit like a bottleneck or a roadblock and then you have to rely on the underlying framework to kind of get rid of that. And this can sometimes take a while. The key here is to be flexible because, yeah, essentially, again, you want to pick the best harness or the framework that can, you know, fulfill your requirements. I mean, we've all seen it in the last months, how new harnesses shipped and, yeah, how everything went from like... agents building code towards, yeah, defined as like an agent loop runtime. I mean, we've seen Hermes coming up, deep agents and all of these frameworks, right? Yeah. Okay, let's continue. What happens after build? Now, after you build for agents, you essentially go into the eval-driven development loop, which I would call. And this is kind of equivalent to test-driven development for building software with agents because then the agent needs a termination condition, right? So when is an AI feature or an agent is good enough? So here again, there are two ways to kind of create your eval suite, which is composed of the evals, like the metrics and the criteria you evaluate, and the datasets themselves, which usually contain the cases you have to satisfy. Now, in the beginning, the original option is that you... can sit with your domain experts and then try to write eval metrics and criteria that would cover the feature or the agent you want to build. But most teams working on that will already know that this is a bit difficult, as in you cannot pre-guess the entire evaluation suite from the beginning. And secondly, you can always start with historical data or synthesized data from a known sample of the data that you would like agent to be tested on. But essentially, the real and the complete eval suit is a product of discovery. What that means is... Over time, from user feedback, from production failures, you collect the metrics and criteria plus the additional dataset cases, which is often representative for edge cases or hard cases that the agent needs to deal with. And with that, then you finally have an evaluation suite where you can run the agent against and exactly know where it fails. Okay, before we continue, why does the agent API engineer help us here so much? So obviously we're talking about the evaluator agent. So why is it so good to use this kind of concept or thought process in the building? I mean, one issue is, again, imagine you have a dataset item of 200 here without automated evals. Running this and evaluating by human eyes takes quite a while. You would have to, again, scroll through an observability dashboard and logs. This, in turn, increases your loop time per eval state. So as soon as you have a lot of features that you need to evaluate an experiment on, then it suddenly becomes impossible to do this quickly or in parallel. Then the human essentially becomes the bottleneck. OK, so we just have an agent do this work in sifting through traces. Yes, as the current era says a bit, you know, you design loops for your agents so then they can autonomously work as many of these things in the background. And then your job becomes designing these loops with a clear eval or termination gate. Okay, understood. So let's look at how good eval is supposed to be. constructed and what it kind of evaluates right so in the context of agents in general the mainly the trajectory is important because agents receive input or let's say intent or tasks and then they have a specific system prompt or like a decision tree that they kind of operate over And when doing agent evaluations, again, in general, we check, hey, was the context complete? As in, did the agent have all the required context to perform the task end-to-end? Then this includes also checking every tool output in the trajectory because every wrong tool output in session can in the end lead. to a wrong output as the final output. And apart from that, again, there are different things you can evaluate on. So these days also the harness that the agent is operating on has quite drastic effects on the agent behavior. And this is again, another vector of optimization. But in the end, when you evaluate an agent, you would like to evaluate all of these things and not something in just isolation. Right. And in general here, what makes an eval useful? So you can always have metrics or evals that are... working in a LLM as a judge fashion and give you some score but here in order to make an eval you know useful it has to provide actionable feedback as in when you use score based evals unless your rubric is very well defined then this does not exactly tell you what to fix In such cases using binary type of evals or criteria is preferred because there you have a kind of a call to action. If an eval or a criteria fails, then you know exactly what happened and how to kind of deal with the problem. Then another point is your LLM as a judge. solution should be calibrated so that you don't have the scoring noise between judges because since LLMs are undeterministic what you will mostly encounter is the same judge can evaluate a problem different ways on each run and then here you have to make sure your LLM as a judge solution deals with this variance problem otherwise it's hard to run experiments and conclusively say hey my initial or my improved version is better than my initial version of my agent right after then evaluation basically we go live and this is where then collecting let's say learned failures, failure modes or primary signals from the executions takes place. Here the idea is again when an agent encounters a problem over time there will most likely be multiple occurrences of this so it starts by identifying what failure mode that the agent has encountered. And then grouping essentially these failure modes by the root causes and where they originate from. Again, this could be a section in the agent prompt. This could be missing tools or let's say malfunctioning tools. But after your diagnostics results are categorized, then you can finally generate new evaluations first to detect these problems. And then second, you can generate improvements and remedies based on these problems. And yeah, with that, over time, you have... build up of these learned failure modes so then every agent over time gathers these historical data that it can always check against when you start diagnosing there's a bit of a upfront cost in the beginning because you often need to deep read the lm traces to find out what's going on Over time, you can collect code checkable indicators per failure mode. What that means is there are maybe specific pieces of content or there's a specific tool called sequence where you know that the agent will encounter an issue. And then this later on helps you to diagnose problems in your traces without actually having to read through all your traces. Now, why is that a problem? Because if you have, let's say, millions of agent traces, trying to read all of these actually costs more than the execution itself. So it's not the most efficient way of diagnosing the problems. What you want to aim for is, again, try to pick a representative sample from your whole traces by intelligent segmentation strategies and using, again, as I said, the learned indicators. Okay, cool. And then with that, you can finally start building the autonomous optimization loop because Here then, given that you have an eval suite, you can vary your feature, again, update certain sections or even run auto research style experiments to see that whether you can reach the desired or the target scores for your evals. As long as you can reach that, then it's automatically shipped to production. Then from production, you have your outer loop. Again, every issue that's found then on diagnostics gives you improvement or a remedy, which then you can optimize on. And then as long as the eval suite is green, then this again gets deployed to production. Let's continue now with the whole life cycle. Yeah. as we learned now the details of each everything starts with a spec you define and design it you build your agent and all of this can be done obviously agentic so you define agents that do this work and then they all together become the agentic ai engineer you go through the offline loop where once you build your evaluation system uh yeah you evaluate you optimize you test you improve your accuracy on your test data set Once you feel ready, you deploy it to production. And that's when the online loop starts. Here you get real feedback from users. Yeah, real test cases. You continuously monitor them. You look at your life traces. You diagnose them. As we learned before, with the diagnose agent, you can do root cause analysis. You can cluster your failure modes. You'll derive new evals criterias from it. They become part of the spec. They become part of the agent. so they continuously grow with you while you use your agent in production and uh yeah this becomes the online loop and the more use cases you collect the more is production data you see the better your agent becomes and the better scoring your agent becomes and this all together now becomes one end-to-end loop that you can run agentic and uh yeah from here on uh yeah you can now see the combination to software-driven development with coding agents. You can transport these concepts also for AI engineering and building AI agents. And now, as we at Mutation work on this, we're going to show you now how this looks like as a product. This is kind of how it looks like. For now, everything runs in your environment. And as cloud and local, we'll offer and manage service down the line. so it's a set of agents we have two in research preview the ones we talk deeper about this in our talk first one is the evaluator agent that helps you build an eval set a good data set because this is the core of the optimization the eval driven development loop the second one we have is the diagnose the diagnostics agent it does you it helps you diagnose your traces you already have in productions because we learn from our users that reading through these traces took them a lot of time and having kind of an agent they can just spin off from their coding environment to analyze the traces is very helpful to them and as you can see here both of these agents are connected through an orchestrator which runs in your coding environment and what you need basically is connectors to sources where you basically have all your traces where you get your incidents from this could also be like your ticketing system slack where people report failures of your agents then you connect them and then obviously as we mentioned before there's different target platforms this could become a pr that automatically gets raised in github this could be just the adjustment of your agents in yeah in md files uh yeah different frameworks we target and or being deployed to manage services yeah kind of this is how our platform works we spin up different agents they are connected to an orchestra and I guess Brooke let's show our first agent and research preview to the audience as I said you have orchestrator which kind of handles the dispatch for all the other sub-agents or stages we have. Then you can use it in any coding harness or agent you want. In this case I'm using Cloud Code. But then what it will do is when you first boot up, it will show you kind of like a dashboard of which stages you have and also kind of the existing things in, let's say, your code base, your agents and the prior configurations. Now here I have some star commands. These are basically, let's say, trigger commands for the workflows or specific stages. type diagnose here this will basically start the diagnostic stage for the root cause analysis and here again you can point the diagnostics into a specific scope this can be an agent this can be a skill as well so you could basically diagnose all invocations of a particular skill here one when you start the diagnostics it will retrieve traces from your configured source platform in this case again it can be something like length views it can be your local cloud transcripts or or another you know like a json l format that's like exported from one of the observability platforms Now, the diagnostics run itself takes quite a while to finish, so I will show you instead a pre-generated kind of version of what it does and how that looks like in the end. Okay, so what do we see here now? So, basically, once you run the diagnostics agent, as I said, on your agents, you will get... generated html artifact which basically shows you the details of your agent which tools you have then in general if you if you have code access it will also tell you which harness or the framework then the agent is using and then here in general it will basically go through your traces and then select primary signals or let's say failure modes depending on how frequent they occur in the trace samples. Now as I said most of the time you don't want to read all of your traces because this is not cost efficient so there the diagnostics use like a multi-tier filtering or segmentation to kind of pick a representative sample so originally a few you know pieces of the traces or let's say a portion will be read by the LLM to see that if there are any detectable obvious problems. And based on that, then the diagnostics then decides to focus on a particular failure mode or a signal. The other option is then trigger the diagnostics. You can also specify an issue that you have seen yourself or issue that you're looking for. This could be something that the users reported. In this case, it's again more of a guided search, meaning, hey, if you tell the diagnostics agent you have a particular problem you're interested in, then it will try to find all incidents or occurrences regarding the same problem. Okay. And what do we see here in full here? this is in general the overview which tells you again which issues kind of were detected and kind of shows you like the frequency uh giving the given time frame then for each tap you will have a failure mode and kind of like an explanation of the problem and then here Here you can kind of see where that problem comes from or why it happens. The agent will provide kind of like a recursive Y-chain, let's say, to then tell you, hey, this is where the issue is originating from. Now, in addition, it will offer you kind of remedies or fixes to deal with that. And then here you will see an assumptions block. Here, this is important because when you are reading traces, sometimes you don't always have access to the code. So this helps us detect. llm or let's say the diagnostics agent makes certain assumptions that are also not correct and we can see and correct them here but in the end you will be presented by certain corrections or remedies which then kind of can fix your problem you can you know pick either the recommended or you know as many as you need as it's multi-choice And once you basically go through all your problems, at the end, you kind of get to a decisions page. And here, again, for those using text-to-speech or speech-to-text AI features like Whisperflow, there's always a general feedback box so that you can always talk into your mic. And finally, when you are happy with all the decisions, you get a markdown, let's say, task definition for your coding agent. So all the fixes or the remedies can then be directly applied once you go back to your terminal and to your coding agent. Thanks for the demo, Burak. So last words on our product. Yeah, so thanks for listening in to our talk. Yeah, I hope we could show you some good insights on how we envision the future of agent building with the Agentic AI engineer. Yeah, stop the debugging. Have agents do the tedious work and reach out to us if you have further questions. And yeah, have a great conference.
⚙️ Pipeline jobs
| Stage | Status | Att. | Updated | Error |
|---|---|---|---|---|
| download | done | 1/3 | 2026-07-20 13:36:49 | |
| transcribe | done | 1/3 | 2026-07-20 13:37:10 | |
| summarize | done | 1/3 | 2026-07-20 13:37:39 | |
| embed | done | 1/3 | 2026-07-20 13:37:41 |
📄 Описание YouTube
Показать
In this video we introduce the concept of the agentic ai engineer. similar to coding agent loops for agents we build a system that build AI Agents in an Eval-Driven Developement Loop. The Agentic AI Enginner is a collection of a multi-agent team, steared by an orchestrator and combines, spec, build, evaluate, diagnose, monitor, optimse. We round up the talk with a live demo from one of our agents in research preview. Speakers: - Benedikt Sanftl (Mutagent): Bene is the CEO and Co-Founder of Mutagent. The platform for Agentic AI Engineering. LinkedIn: https://www.linkedin.com/in/benedikt-sanftl-294a6039a/