← All AI Engineer talks

AI Engineer Europe 2026

Viktor — AI Coworker That Lives in Slack

About this talk

Viktor co-founder Fryderyk Wiatrowski explains how the company evolved from browser and email agents into a Slack-native AI coworker with shared access to company tools. He focuses on the engineering difficulties of organization-wide agents: complex Slack interactions, persistent shared context, isolation between channels and direct messages, integration permissions, and preventing private email or executive-channel information from leaking across teams.

Chapters

  1. 0:00Introducing Viktor, a Slack-native AI employee
  2. 2:08From DOM-based browser agents to proactive email agents
  3. 5:16Personal agents versus company agents and shared tools
  4. 6:52Memory boundaries and Slack interaction complexity
  5. 14:55Shared integrations, email exposure, and closing recommendations

Talk transcript

  1. 0:00

    [upbeat music] Um, cool.

  2. 0:15

    So my name is Fryderyk. I'm the co-founder of Viktor. Um, Viktor is the AI employee that probably most of you have heard of already. It's absolutely blowing up. We launched it in February this year.

  3. 0:28

    Zero expectations of growing at all. Uh, it was actually an experiment, and it surprised all of us. Immediate product market fit, you know, huge adoption worldwide. And yeah, we can't, uh, uh, we can't catch up.

  4. 0:43

    Um, so what, what is Viktor? Uh, Viktor is an AI employee, and when you think of an AI employee,

  5. 0:51

    um, you should think of it as just like a human employee. You know, lives where you live, lives in Slack. It doesn't have a web app. Um, so just like your teammates, you don't need to go to a separate place to, to call it.

  6. 1:06

    It participates in your discussions, in threads, in channels, and it has access to, to the tools that you have access to. Um, it has access to three thousand integrations, and if for some reason it doesn't have access to your integrations, it can build its own connections.

  7. 1:24

    So essentially, Viktor can use any tools that your company uses, and therefore, Viktor has the context of all of your tools. And as opposed to human employees, Viktor has a horizontal and broad context about the whole company.

  8. 1:40

    And for example, when you currently hire a CMO,

  9. 1:45

    you can probably assume that the CMO would be much better if it has a- had access to your code base, if it was able to contribute to your, you know, uh, to, to, to, uh, to your code base.

  10. 1:57

    Um, and Viktor can do this. So it's bringing this kind of, um, universal PhD level understanding to all of the areas of the company.

  11. 2:08

    Let's start with a quick story of Viktor and, and the company. Um, our mission from the very early days in twenty-twenty-three was to build AI employees. And back then it was, you know, after ChatGPT has launched.

  12. 2:24

    Back then, we thought that the right way to build em- AI employees is, is, is through browsers. Um, as a reminder, we didn't have tool calling. We didn't have like, uh, you know, great code generating models.

  13. 2:38

    So, you know, probably the right way to take action was, was through browsers. You know, browsers are like very universal interfaces. Um, you can essentially use any tools through a browser.

  14. 2:52

    Uh, most apps have, have, have, uh, browser apps that, that you can interact with. And the way back then it was called JAI was working. Uh, it was taking a snapshot of your DOM, min- minifying it in a lossless way, um, and then based on the snapshot, and this minified snapshot, and your goal, it was deciding on

  15. 3:12

    the next step. So for example, should I type something in, in the search bar in Google, or should I click on the login button to log in? Um, and it was great.

  16. 3:21

    You know, it, it certainly should work, right? Um, and it did, but it didn't work for a lot of steps with the current capab- with, with the previous capab- capabilities of, of the models.

  17. 3:31

    It was like back in twenty-twenty-three, it was working for like three to five, five steps reliably, and by reliably, I mean with sixty percent reliability, and, you know, that was compounding with, with each step.

  18. 3:45

    And so, uh, that was still state-of-the-art. So JAI was a state-of-the-art web agent on, on the most popular agentic benchmark called Claude Code Web Arena. And, uh, and it was doing well, but it was very difficult to make it into a useful product just because of the reliability and the speed issues.

  19. 4:01

    'Cause k- currently you can just call a, a few tools or like, you know, call a function, and it will immediately, uh, give you an output. And with the web agents, you know, you have to wait a minute until it fails.

  20. 4:11

    So it was quite, quite hard. But, but web agents are amazing and, you know, um, they're finally working much better than in the past.

  21. 4:18

    Um, cool. So, you know, uh, after that, uh, JAI became an email agent. So, you know, uh, Sonnet 3.5 came, uh, we have built our face-- first agent loop, and we really wanted to have the experience of you not having to go to a web app to ask the agent to do something, but rather the agent having

  22. 4:39

    all the necessary context and being able to proactively come up with the tasks for you. Um, and we achieved that with Jase. Jase was like an amazing product, also a great product market fit.

  23. 4:49

    Um, and it's still, it's still alive. You should, you should check it out. Basically, the way it works is, you know, whenever an email arrives, uh, an agent loop is triggered, connects to your tools, can react to emails, not only with email drafts, but also with, with, with, with, uh, tool calls.

  24. 5:06

    For example, if someone asks for a refund, the agent can automa- uh, automatically do a refund for you. Uh, of course, can be gated with approvals as well. Um, cool.

  25. 5:16

    Uh, but then, you know, this February, we launched Viktor. Uh, Viktor, you know, probably everyone... I mean, we are in the OpenClaw Slack, so, uh, uh, in OpenClaw track, so everyone knows of Open OpenClaw, which is a personal agent, and we always wanted to build the employee, which is the company agent.

  26. 5:35

    And the, the first question you should ask yourself is like, how is it different? What is the difference between the company agent and the, and the personal agent? So, um, first

  27. 5:46

    we think, uh, that company agents should live where you live, work where you work, and have all the company context. And that, you know, i- i- if, if, um, if, if you're building a personal agent, then probably everyone from the company connects their own integrations and, you know, uh, runs those agents on their own.

  28. 6:02

    Uh, with Viktor and with the company agents it's different because suddenly it's sufficient for one person from the company to, to connect an integration. Viktor will inherit the permissions from these integrations or like you can tune it.

  29. 6:14

    And then the whole team has access to it, so you don't need to connect them a hundred times. So as I said before, 3000 tools, um, lives in Slack and essentially does anything across roles.

  30. 6:28

    And, um, that comes with challenges. And as you can imagine, um,

  31. 6:37

    as you can imagine, like the, um... I- I'll talk about one mainly here. So the, the first challenge with, you know, coming from a, a, a personal agent to a team agent and, you know, not having one user but any users is,

  32. 6:52

    is around memory. So with OpenClaw, uh, there was a big concern about the m- memory getting cluttered, cluttered over time. And I think that's a, you know, serious and, uh, it, it makes sense to be concerned about this, right? [chuckles]

  33. 7:06

    Um, but imagine that you have the same architecture and the same memory, but now for 100 users and not one user. So it's probably running out of the memory 100 times faster.

  34. 7:19

    It's a big challenge to be solved, um, and we have solved it.

  35. 7:23

    Uh, another thing is Slack has different channels and, and companies have, you know, different, different hierarchies that we need to adhere to, and people will often give the agents conflict- conflicting instructions.

  36. 7:38

    But let's imagine that you have Viktor, your company agent, in one channel, in the growth channel, and then in the engineering channel, and also in people's DMs. So, um, Viktor will, you know, take the context from the growth channel, uh, or will take the context from the executive channel, and you somehow need to make sure that this

  37. 7:59

    context will not be leaked to the engineering or support channel. Similarly, if you DM Viktor with your problems, um, Viktor should not take the context from the growth channel unless you are from the growth team.

  38. 8:12

    So it adds a lot of complexity on how, uh, how, how, how the access is structured.

  39. 8:21

    And, you know, we chose Slack as our interface for what we think is AGI for companies, and there is a reason for this. I- I'll say... I'll start to...

  40. 8:33

    I'll, I'll, I'll first talk about the reasons and then what breaks in Slack. Um, so there are two, two major reasons. First, we wanted it, Viktor, to feel like a human employee, and you don't interact with human employees in web apps.

  41. 8:44

    You interact with them in, in Slack, ju- ju- your, your teammates, right? Um, and,

  42. 8:53

    um, and the number two reason for choosing Slack as an interface is that if Viktor is like a very powerful agent and it's supposed to perform difficult tasks, then those tasks will not execute immediately.

  43. 9:09

    They, they can take like 10 minutes to execute, right, uh, naturally. So when you go to a web app and ask an agent to do something for you, so you switched context, and now you need to te- wait 10 minutes for the answer or for the output, it's quite frustrating, right?

  44. 9:28

    Like you don't want to wait. Uh, you are used to, from ChatGPT, you're used to immediate answers. It, it should take like 30 seconds and it's done. Thank you, copy paste, and I'm done.

  45. 9:38

    Um, but it's not how it works with the powerful agents. So why is Slack better? Well, now, if you ping someone on Slack and tell them to build an app for you and get an answer in 10 minutes, you are shocked.

  46. 9:53

    No teammate has ever built you an app i- in 10 minutes, right? So, so kind of the perception is different, and suddenly the latency is, is very low, uh, when you compare it to, uh, to, to, to your normal Slack experience.

  47. 10:07

    But there are certain things that break in Slack. [chuckles] And, uh, number one is that, you know, when you work in web apps, you have a single kind of, um, um, single thread.

  48. 10:19

    You open, uh, you open a new agent or a new, a new thread, and you s- you speak to this agent. However, when you are in Slack, you have a lot of interaction modes.

  49. 10:28

    One of them is DM-ing people. Another one is being in public channels and participat- participating in threads. Uh, another one is just reacting with emojis. You know, you can also edit your messages and stuff.

  50. 10:41

    And all of this is, is an input to an agent, and all of that needs to fit into a linear context somehow, not in a single thread, right? And we, we need to manage this.

  51. 10:54

    So let me give you an example. Um,

  52. 10:58

    of course, when someone deletes a message, a human assumes that, uh, the task should not be, be continued or it's not interesting anymore. When someone edits a message, you should also respond to, to an edit.

  53. 11:10

    Um, but let's say you are DM-ing your coworker, whether that's Viktor or your friend, and you start a thread in Slack, right? Um, but at some point, and, uh, humans do it very often, you forget about the thread and you just start a new DM to the same person.

  54. 11:26

    Um, should you start... And you open a new sandbox.

  55. 11:30

    And humans normally have the context from the previous thread. But for the agent, this is an... It's a totally new area. It's a new task, right? So what needs to happen then is you need to somehow always, whenever Viktor receives a DM, look at the previous messages and somehow roll them over to the, to the, to the

  56. 11:48

    existing conversations. Um, so this is just one of the challenges that you need to face. Um,

  57. 11:55

    fun fact, we noticed, you know... I, I didn't think it would be as important as, as it actually is, but, uh, what really matters is the tone. I'll give you an example from our, one of our customers.

  58. 12:07

    Um, uh, you know, we were testing... So we use Opus 4.6 now for Viktor, um, and we were use as, as the kind of the main model, and we were using, um...

  59. 12:18

    We wanted to try GPT 5.4. And on the tool calling and code gen, it's actually amazing. You know, it should work, and it's actually cheaper as well. So why not replace Opus with GPT 5.4?

  60. 12:30

    Uh, and there's one reason we, we didn't go for it. Like, there's a couple, but one... the most interesting one is the personality. Um, for some reason, our users, can be due to our architecture, but they loved Opus, and they all started raging when we, we did, we did, did the A/B test.

  61. 12:46

    So, uh, I think there is something beautiful in, in that model that, um, you know, um, we can learn from. Um, and the Opus is a bit sassy as well in Viktor.

  62. 12:55

    I'm not sure if that's thanks to our team or [chuckles] who made it this way, but, uh, ac- actually quite funny. I encourage everyone to try. Um, proactivity. One of the kind of powerful things that Viktor can do is proactively suggest you the workflows that it can automate.

  63. 13:12

    So let's say you're in a growth team, and you discuss an A/B test and the results. Uh, and at some point, you realize, okay, this one option is performing really well.

  64. 13:23

    I'll go for this option instead of the other one. Um, Viktor has access to a PostHog or whatever tool you use for analytics, and it can literally check a- and realize, and it will do so, if what you're saying is not some bullshit. [chuckles]

  65. 13:37

    It happened a couple of times that, you know, we were discussing some experiments. Viktor checked PostHog and said, "Hey, you know, it's true, but, like, this is not statistically sig- significant."

  66. 13:46

    And then it has run a calculation of why I'm saying some shit. Um, so it's fun. It's an advantage, right? If, if Viktor can suddenly join a conversation and be helpful, it will be activated more broadly in the workspace, which is great for the product.

  67. 14:02

    But if Viktor does it on day one, and it happened, um, the security teams start raging [chuckles] because someone adds Viktor to your workspace, and suddenly Viktor starts DM-ing everyone and then participating in the threads, and the security is going crazy.

  68. 14:18

    Um, that's why I think you should earn it with the first use- with a few users first, and then o- can... you can roll it out broadly. Um,

  69. 14:28

    exactly. Um, yeah. So the value of shared context. I don't have much time left, but, um, I'll very quickly talk about the difference between Viktor and agents like Claude Code, uh, or like Claude Cowork or whatever.

  70. 14:46

    Um, you know, Claude Cowork works on your desktop, so it's a bit different. Uh, the advantage of Viktor is that it works in cloud. You don't need to have your computer open for it to work.

  71. 14:55

    And another thing is the shared context. So as I said at the beginning, for Viktor to work well, for you to be able to, you know, ask Viktor to change your meta ads budget or, like, to read your analytics data, only one person from the company needs to connect this integration, right?

  72. 15:13

    Imagine that you work in a hundred-person team and your growth team is twenty people. If you have to ask twenty people to connect your meta ads [chuckles] everyone individually, it's quite painful.

  73. 15:24

    Furthermore, if someone wants to interact with Viktor, um...

  74. 15:29

    and, like, if Viktor wants to be proactive, e- everyone connects their own integration, someone can connect their own, own integration, right? And Viktor can be just very stuck and wrong and, you know, might not know which integration to use, which adds a lot of complexity, uh, for the user.

  75. 15:44

    Um, cool. And something I want to highlight here is that Viktor is not a tool. It's a hire.

  76. 15:53

    And here's what I mean. Uh, I'll tell you one customer story. One of the biggest e-commerce brands in the, in the United States, they, uh, their team admin has connected Viktor.

  77. 16:04

    And the first integration, the team integration that they connected was their personal email, personal Gmail. And then suddenly the team started speaking to Viktor about this guy's emails. [chuckles]

  78. 16:19

    And, um, and this guy is r- is, is, is, is texting me and saying, "Hey, man, like, what, what the hell? Viktor is leaking all of my data. Why are you doing this?"

  79. 16:27

    And I'm like, "Why did you give Viktor access to your personal email?" Like, you know, if you hire a new employee, do you give them access to your personal email?

  80. 16:38

    Probably not, right? Um, that said, I think it was a great inspiration, and what we did is we added a capability to Viktor to kind of scope the integrations.

  81. 16:50

    So they're not always shared, and if you want to have your personal integration to your personal email and want, want Viktor to, like, in your DMs or publicly, uh, be able to use it when you call it, uh, this is also possible now.

  82. 17:02

    Um, yeah. And, and so to summarize, um, what does it take for an AI coworker to be great? I, I think there are three major pillars if you want to build your coworker.

  83. 17:15

    I think this is a technical crowd, so I encourage everyone here to try to build your own Viktor. Um, and, uh, you know, there are just three things you ma- need to make work.

  84. 17:25

    Helps get work done, quite easy. Models are capable today. Um, you know, connect your in- integrations through Pipedream will work well. Knows the company, has the context from Slack.

  85. 17:35

    Make sure you're able to utilize this context well. Um, you will probably need to go through the Slack approval process, which is very difficult and can be, it can be boring.

  86. 17:44

    And then make it friendly. It makes a difference, and you should, um, make sure that Viktor likes your team, your team likes Viktor. Um, this is our vision for the future.

  87. 17:54

    Every company has AI employees. I think it's obvious. Not nothing to argue here. Um, and historically, um, I just want to highlight the vision for AGI has been with us since the seventeenth century.

  88. 18:06

    Um, Gottfried Leibniz, the inventor of calculus, um, was reasoning about, you know, humans doing unnecessary things, and he wanted to build a calculator. Um, little did he know, you know, a c- a calculation is ne- the, um, not the only cognitive task that, that we can automate.

  89. 18:22

    And I think, um, we are now in this beautiful moment in history where, um, where, where we can essentially automate all the cognitive tasks, and we, we can be part of the revolution.

  90. 18:33

    So I'll just let myself r- read his quote. Um, "It is unworthy of excellent men to lose hours like slaves in the labor of calculation. Let, let us leave that to machines."

  91. 18:44

    And with that, I just wanted to encourage everyone to

  92. 18:49

    scan this QR code, click on sign up, and add Viktor to your Slack. Test it out. Everyone in this room has a hundred dollars in free credits. No string is attached.

  93. 19:00

    You can just remove V- remove Viktor at any time. It will add a lot of value, I promise. If it doesn't, give me a call. I'll make sure it does.

  94. 19:08

    Thank you. [audience applauding] [outro music]