WordPress is moving fast on AI, and plugin builders need to keep up. On Jan 21 at 6pm UTC+1, WP Product Talk sits down with Jason Adams, Core AI Team Lead at Automattic, to unpack how plugins WordPress AI efforts are shaping whatโs possible right now.
Jason joins Zack Katz and Matt Cromwell for a practical conversation on where core AI is headed, how plugin teams can build on it, and what to pay attention to if you want your product to stay relevant as AI lands deeper in WordPress.
[00:00:00] Matt Cromwell: Hey, everybody. AI is landing in WordPress core, whether plugin builders are ready for it or not. Um, but for plugin builders who pay attention right now, this is a great chance to build smarter products and ship faster and solve problems that were maybe out of your reach before. Um, today we're digging into how AI is coming to core, uh, how it's opening up some new doors, what it looks like, how are the design plugins, and take advantage of it.
[00:00:32] Uh, and this is gonna be a good one. Stay tuned.
[00:00:38] This is WP
[00:00:40] Product Talk, a place where every week we bring you insights, product marketing, business management, and growth, customer experience, product development, and more. It's your go-to podcast for WordPress product owners. Buy WordPress product owners and now enjoy the show.
[00:01:05] Hey everybody. I am Matt Cromwell, uh, founder and co-host of uh, WP Product Talk.
[00:01:12] Zack Katz: And I'm Zack Katz, founder and owner of Gravity Kit.
[00:01:17] Matt Cromwell: And before we get started, uh, I wanna say we are on a road to hit 10,000 YouTube subscribers and this week. We hit 5,000 already. We are on the road. I'm gonna do a write up on what we're doing.
[00:01:29] It's actually been going really cool, but you can continue to help us. Uh, so many folks who watch our show are not subscribers. If you just click that subscribe button, it helps us a ton.
[00:01:40] Zack Katz: Yeah. Excellent. Uh, and a huge thanks to FIUs for being our exclusive growth partner on the road to 10,000 subscribers.
[00:01:48] MIUs helps software makers grow, monetize, and succeed. Freemium is a merchant of record platform. And what that means is that they handle everything around selling software, uh, checkout payment subscriptions, licensing updates, global tax compliance, all the stuff you need to do if you're selling WordPress products, uh, so that you can focus on building the products themselves.
[00:02:07] So huge thanks to Free MIUs for sponsoring the show.
[00:02:11] Matt Cromwell: All righty. We're gonna jump into AI coming into WordPress core, and to do that, we're bringing a good friend of mine. Who happens to be on the core AI team? Here he is. Jason Adams. Hey, man. Good to see you.
[00:02:27] Jason Adams: Good to see you. Happy to be here. Thanks for having me.
[00:02:30] Zack Katz: Yeah, Jason, welcome. Thanks for, thanks for being here. Uh, please tell you everybody a little bit about yourself.
[00:02:37] Jason Adams: Yeah. So, uh, I. I've been a, a professional nerd for a long time, uh, a couple of decades with a, a background where about 15 years ago I got into WordPress. Before that, I was doing home automation and building scientific testing equipment and random stuff.
[00:02:56] Um, and uh, then most recently I, uh, have been working with the core AI team. I'm not actually a lead on that team. Just a guy. Hmm. Uh, who is happy to help. I'm a very active maintainer, I guess you could say. Um, and um, uh, and then through that in October, I ended up joining Automattic, where I'm helping to, I work alongside, uh, James LaPage.
[00:03:23] Or actually the last time I was on this podcast, it was me and James on here, which was fun. Uh, and, um, I work alongside him to help lead, uh, the AI teams at Automattic, where we have. Uh, tons of tons and tons of, uh, different AI work going on in there. 'cause we're also trying to lead by example of what does it look like right now in this crazy fast-paced age of AI to be innovating as best we can.
[00:03:52] And then I'm still, uh, contributing to core ai. Uh, shout out to Felix, who he and I work a lot together on the. PHP and WPA client. Uh, we just got 0, 4 0 out on Monday and we're really pleased with that. So, uh, yeah, loss of active contribution there, which is, uh, super fun. Like this is, I've been in tech a long time.
[00:04:14] It's never been this fast paced and it's fun.
[00:04:18] Matt Cromwell: That's awesome.
[00:04:20] Zack Katz: Yeah, it really, it feels like, uh, it, it's exciting and it's daunting, uh, but it's in a way that's thrilling, uh, that I haven't felt in a long time since the early days of like CSS becoming a standard that everybody was adopting and, and, yeah. Oh man.
[00:04:36] R ss like it Web 2.0 and I have thinking like the, a access to APIs that weren't available before. This feels like that, but just way, uh, way broader because the tools themselves are able to help us implement the tools.
[00:04:51] Matt Cromwell: You're dating yourself there. You're like, back in the day when everything was green screens, like
[00:04:58] Jason Adams: Yeah, when, when I started coding was when HTML four came out.
[00:05:04] Mm-hmm.
[00:05:07] Matt Cromwell: It does feel really awesome. Hey, and we see some folks already taking advantage of the comment section. If you're here on YouTube or on LinkedIn right now, uh, feel free to leave comments there for us and we will highlight them on the screen and answer your questions as much as we can. So let's jump into it.
[00:05:24] Jason. Um, we talked about this last time you were on, um, but things are rapidly changing all the time. Yeah. And, uh, we talked about it at a high level in terms of, uh, AI and WordPress and all the direction that things were heading at the time. Um, I'd like to do, if you can, a quick little update on the things that you all have shipped, uh, because, uh, one thing that I think a lot of folks don't recognize is that it's not like.
[00:05:50] AI coming into core is like one thing. There's several kind of big projects that are happening. So give us a quick little update and then I want to jump more into, uh, opportunities and things like that.
[00:06:03] Jason Adams: Yeah. So, um, one, I'll clarify even like when we're saying AI is coming into core, like what does that mean specifically trying to be concrete here?
[00:06:13] So, um. As part of core ai, there is a client, so when I say client, I'm talking about, um, a. Singular way of being able to communicate with many AI providers, right? There's open ai, there's Google, there's anthropic, there's open source ones and whatnot. And, um, and having the ability to, to switch or to not couple yourself to one specific one, uh, is really important.
[00:06:41] And so you use the client as a way of being able to, to make your requests and get back and forth with the ai, uh, without it having to be. Tightly coupled those, some one, uh, provider. Uh, so there's the PHP AI client, which is a generic framework agnostic, which is kind of an interesting thing that's in WordPress that is not actually specific to WordPress.
[00:07:03] It's just anybody doing anything with PHP can use this package to to do that. So if you're working in Laravel or if you're working on something bespoke, you can use it. Um, and then you have the WPEI client, which is. The, it's literally just a wrapper that sits on top of that and then does some things like hook into WordPress and use the WordPress request system to actually communicate with providers and so on and so forth.
[00:07:30] Um, and so when we talk about, and we're actually writing this now, but like the merge proposal for core, it is effectively both of those 'cause one's on top of the other, but it's the WordPress AI client that will be going into core, uh. One thing that's really important to call out there when we say like AI is going into core, I think for some people they hear like we're like shoving like models or something into core.
[00:07:58] We're what's going into core is the ability to work with models. We're not actually, if you go to the PHPA client right now, you'll see that we have anthropic, open AI and Google providers set up in there that is not going into core because as part of the WordPress philosophy, we don't want to, you know, in a roundabout way, end up being like giving business to OpenAI or whoever.
[00:08:25] Like we don't want to put the WordPress badge of approval on any one provider. We want it to be, we're. Everybody chooses one. Is there a provider or do you just not wanna use AI right now? And then two, which provider are you comfortable using? Which also gets important for folks who have like HIPAA compliance needs and that sort of a thing.
[00:08:46] There are specific providers out there who can, uh, who can do that. So they need to be able to do the control, that control, you know, the flow of information and so on and so forth. Like, there's a lot going into this to make sure it's being done. Um. Responsibly. Uh, so then other than that, uh, we have the Abilities API, which already went into, uh, 6.9, right?
[00:09:09] That was super cool and just gave us a fundamental functional, primitive, a simple way of being able to define things that could be used with AI is not actually specific to ai, but that was part of the motivation. Then we have, uh, the MCP adapter. Which takes, which w uses the abilities API to be able to create an MCP server.
[00:09:35] You can either have like one MCP server, like a super one that's for all of WordPress. Or you can make your own individual ones, like WooCommerce for example, uses the MCP adapter, uh, and they just have their own, 'cause they wanted to just contain their own tools and things like that. Um, it's one note on that.
[00:09:52] It's called an adapter because. What we don't wanna do is totally get ourselves coupled to some specific protocol. Um, because MCP, like a lot of things in AI right now is an experiment of sorts. And so it's like, yes, if you want an MCP server, you can use this. It'll wrap abilities and there you go. But maybe later we'll make a different one.
[00:10:20] There are different protocols emerging all the time. Um, so. So that's why it's called an adapter. And then lastly, yes,
[00:10:30] Matt Cromwell: on that one when you said that's, uh, what WooCommerce is doing, um, just to help folks understand Yeah, exactly what you mean. 'cause WooCommerce is a plugin, but it's also a bit of an ecosystem.
[00:10:42] It's also a hosted version. Um, what do, what do you mean exactly by That's what WooCommerce is doing?
[00:10:49] Jason Adams: Uh, WooCommerce has an. In WooCommerce core, an MCP server that can be opted into, so it's off by default and you can turn it on.
[00:11:00] Matt Cromwell: Yeah.
[00:11:01] Jason Adams: Um, and uh, and so I, they, I think it was December or November when they released that I could be, I could be wrong.
[00:11:10] I just know that there's, uh, was work on that. Um, and so, you know, just a lot of that exploration, um, I. Uh, yeah. Does that answer that question?
[00:11:21] Matt Cromwell: I think so, yep.
[00:11:22] Jason Adams: Okay, cool. Just
[00:11:23] Matt Cromwell: clarify for folks, 'cause I mean, that's exactly the type of thing we want to get into is like, what if GiveWP wants to put an MCP server inside its plugin?
[00:11:33] Um, right. Is WooCommerce the standard for how we should look at things like that or not? So
[00:11:38] Jason Adams: is, which is a great question. So, so the last package I'll mention is the AI experiments. Um. Plugin, which is on.org as just, I think it's just called ai on.org. Um, uh, and, uh, it is, it is a, it is exactly what it sounds like.
[00:11:56] It is us trying to lead by example and show what could be possible. What are things that, you know, we could see AI being really useful. Um, one example that like, it seems so trite, but I'm specifically. Pleased with is the ability to generate an excerpt from the post content. The reason I love it so much is because the UI is so stupid simple.
[00:12:22] You push a button, do you, you know, do you want the excerpt button? So it's like from a user perspective. Are you using ai? You don't even need to be aware of that. Who cares? The point is that you have a really simple way of being able to generate, um, you know, an excerpt. And I'm really excited about features like that, that are not overtly ai, but are AI powered and bring real value.
[00:12:48] Matt Cromwell: Absolutely. Um, so
[00:12:49] Jason Adams: that, yeah, that's, that is everything going on in core AI right now?
[00:12:53] Matt Cromwell: Yeah. Love it. Cool, cool. So let's jump into implications and whatnot. And I also wanna make sure that we leave some time, um, towards the middle end for questions 'cause we already have some really good questions coming in.
[00:13:09] Um, Zack, I'd love to hear your take right now. Where does your head go? When you think about what's going on from the core AI team's perspective and you think about Gravity Kit and all the things that you are doing, where does your head go? Like, what, what do you like, I want to jump on this opportunity right away, or are you one of those that's like, get me far away from all this crap?
[00:13:29] Zack Katz: No, and I think, uh, it makes sense for every product owner at this point too. If you are somebody who wants to be far away from ai, then
[00:13:39] Matt Cromwell: yeah.
[00:13:39] Zack Katz: Uh, double down on that and make that in your niche because it's going to be very niche. It's not where the future is heading. So, yeah. Uh, in terms of where we are, is trying to find the easy wins, like Jason was just saying, that aren't too overwhelming for the customer.
[00:13:56] Where too much happens all at once, that they're not in control of. So a prime example that we have is in our plugin Gravity import, where you have to map CSV fields, you upload a CS feeder website. And you have to map those fields, uh, the headers for each one of c of the CSV columns to a field in gravity forms.
[00:14:15] Right now. We use hard-coded, uh, checks to identify something as a number or something. Uh, you know, we, we use as much like hard coded logic as we can to make it easy for customers to auto map the fields Automattically. That is totally an easy win to say like, okay, I'm gonna upload, uh. Let me, let me auto map using AI instead of hard coding, this stuff, but then even something simple like that.
[00:14:40] Jason, like what you said. Doesn't have the same implications surrounding privacy, possibly as like uploading a form. If we wanted to say like auto map these fields, that means that we have to send the CSV columns to an external AI provider and have them read that stuff. So then do we have to present the customer with a UI that says, are any of these fields, uh, containing sensitive data?
[00:15:05] Yeah. Like, there's so many implications when you start to actually implement ai, uh, in a way that is, uh, secure and customer first. Uh, that maybe those questions should be viewed in a step before, but all of it gets a little more convoluted for, for us with Gravity Kit, because we're dealing with forms data and forms, data contains a lot of PII, uh, personal identify personally identifiable information, um, and privacy stuff.
[00:15:30] So it's. We're working hard to, to find all the places that our customers will be, will have their productivity unlocked, uh, but a lot of that still is related to stuff that maybe they don't wanna send to the cloud.
[00:15:45] Jason Adams: Yeah, responsible disclosure matters, uh, and figuring out how to, you know, when does somebody need to know that?
[00:15:54] Is it the kind of thing that you just, you know, is it kinda like, uh, the modern annoying cookies banner when it's like, you know, do you accept, you know, do you do it one time and then you're like, okay, you're good to go. All right, we're gonna proceed. You know? Or do you, is it every single individual time that you know you're about to send something to?
[00:16:14] You know, model, you know, I think a iPhone works this way right now, right? Where it's like, it's either internal and then it'll ask you every time, Hey, do you want to use Chatt PT for this? Uh, and so I think we're definitely living in a day and age where we're still figuring out, um. How, how that, what is responsible disclosure, what does that look like right now
[00:16:41] Zack Katz: and what is their in core in terms of how to sanitize things?
[00:16:45] Like right now, if we wanted to, in Gravity kit, we're looking into sanitizing things to make sure we never, even if the customer thinks it's okay. Send something that looks like a social security number to the cloud, uh, to AI processors. Is there a sanitization framework in place currently? Is that in the cards?
[00:17:02] Like what's, uh, how do you, how is WordPress core thinking about, uh, sanitization?
[00:17:08] Jason Adams: It's really good question. So far we've opted out of getting into that. Um. Similar to like when you're, you know, if you're doing direct queries with a database, like, you know, it's up to you to make sure that what you're sending to the database is something that is sanitized and safe and so on and so forth.
[00:17:27] Um, so, you know, the way that, like the prompt builder, the way that actually interface with a model works is like, it's, it's considered very, very low level. So we're not trying to get into an opinion of how to be. Safe about that just yet. As much as just saying like, Hey, you can do this. Mm-hmm. Uh, you know, be responsible in the way that you're going about it.
[00:17:50] The AI experiments plugin is really where we're trying to be like a good example of like, here's how to use it and here's how to make sure that, you know, you're sanitizing or doing whatever you need to, you know, put that stuff in there. But, you know, this is all good stuff to explore. But
[00:18:06] Matt Cromwell: yeah.
[00:18:06] Jason Adams: Um. I
[00:18:08] Matt Cromwell: think that's a, it is gonna be one of the thorny.
[00:18:11] Situations. Um, and I think Zack is saying like, maybe it's important to try to get ahead of it in one form or another. Um, because there is a big difference between, you know, sending stuff to the database that's not necessarily the best practice or the wisest thing to have in your database. Yeah. Versus sending.
[00:18:30] Somebody else's name and email address and IP address to a third party service provider
[00:18:35] Zack Katz: that may or may not be training their data set on that, that value that you're sending to them. That's the real problem, I think. Yeah, like
[00:18:42] Matt Cromwell: absolutely.
[00:18:43] Zack Katz: Or a real problem. And. Like, one of the ways to get around that is to have, uh, stable hashing algorithms that, that encode the PII, so that the AI can understand when it's like vectorized.
[00:18:55] There's all these technical ways to get around that, but like mm-hmm. Exposing that to, uh, developers in a consistent manner, I think is, is important in the, uh, in the core ai. Investigation of this.
[00:19:09] Matt Cromwell: I love
[00:19:09] Jason Adams: that. I think there's, there's definitely room for that. The one step that we're taking right now, uh, that actually probably this week I'll be putting together a PR for is, uh.
[00:19:21] A kind of a controlled kill switch for ai. Um, I didn't know that existed, which sounds, which sounds absolute, but like really, it's more like, uh, what if you want to limit to a certain user role? Only administrators can make AI calls. Mm-hmm. And if a subscriber tries, then it blocks that. Right. Um, so very sensible, you know, authorization and whatever the, the, uh, context is for that.
[00:19:51] You know, just providing a simple. Hook within the W-P-E-I-A client so that people can have that level of, of control within their website. So that's, that's the closest we're getting right now, is the ability to say, you know what, for this person, or in this context, or whatever, no, I don't want the ability to, uh, you know, to run prompts and so on and so forth.
[00:20:17] Zack Katz: One of the questions that we've been asking internally at Gravity Kit is, where does this data live? And this is an ongoing process that we've been like going back and forth on, like, one of the processes in, in AI is to turn the data into numerical values that can then be, uh, used by the AI to understand like likeness and stuff like that.
[00:20:40] Um, should, should data be vectorized? Like if you're, if people are building plugins, uh, should, what should be stored on the WordPress database in your mind versus what should be sent remotely? How should we think about that?
[00:20:52] Jason Adams: It's a good question. I mean, you're getting into, you know, it's called embeddings, right?
[00:20:56] Zack Katz: Yep.
[00:20:57] Jason Adams: Um, and embeddings correspond to like vector databases and so on and so forth.
[00:21:02] Zack Katz: Yeah.
[00:21:03] Jason Adams: Um, and there's like, it's like tricky answer. Not only because of like, you know, how far do we want to go, but also like, uh, if you want a vector support, then you have to be using MySQL eight. And WordPress doesn't support or does support, but doesn't require MySQL eight.
[00:21:22] And so like you, or you can use some of that stuff, or you use SQ light
[00:21:24] Zack Katz: database that like the SQL Light database can be stored in your plugin. Files, like there's all sorts of workarounds to have back compatibility, but like
[00:21:33] Jason Adams: right.
[00:21:33] Zack Katz: In what should plugin owners do? 'cause there's so many different options.
[00:21:38] Jason Adams: Yeah. I mean, I think to start, we'll probably, you know, uh, at least have embedding support the ability to. Send embedding requests to the model. But that's, it's a pretty advanced use case. And so, at least in terms of the scope of WordPress and what we're proposing, like at least now we're not even trying to propose any kind of vector stuff within WordPress itself.
[00:22:01] Um, but it is a powerful. Feature if you are wanting to, you know, uh, have associations within your plugin, then yeah, absolutely. Um, you know, exploring all of that, I think is a, you know, just another great way to, to see what can be done practically. 'cause I, and I think this is, uh, one of the toughest parts of working with AI is.
[00:22:28] It is never so predictable as you think it is. Um, right. Like you might think to yourself like, oh, it does this. If I give it more context, it will do it even better. And then you actually try it and it like it's worse and you're like, oh my goodness, what happened? Um. Like I live by the rule demo. Before you tell, like, don't tell anybody, oh, we're gonna do this.
[00:22:54] If you haven't actually demoed it yet and you don't know that it works.
[00:22:58] Zack Katz: Yeah.
[00:22:58] Jason Adams: Ask Tim, Tim Cook
[00:22:59] Zack Katz: about this because, uh, Tim Cook might have some opinions on what's possible.
[00:23:05] Jason Adams: Yeah, right. It, it's a, a line that I like to use it with AI is like, the difference between good and great is shockingly hard. You can get an AI to do something that like, as like a good enough proof of concept.
[00:23:19] You're like, oh, it does this. I bet I can get it to do it really well with a little bit more work. And then you're like, oh my gosh, that is so much harder than I expected it to be. Um, and so, and that's gonna be a challenge for plugin owners is you can't just ship something good enough. Oftentimes you want to impress, you really want to wow your customers.
[00:23:41] And so you gotta be more experimental with this stuff and try things out and really ask yourself the honest question, can I get the AI to do this in a way that is not ridiculous or, you know, super expensive or whatever. Um. That actually produces a consistent great result. Uh, and that's just, you know, experimentation's the name of the game.
[00:24:07] Matt Cromwell: Yeah. Yep. It's interesting. Um, there's a couple really good questions in here I wanna bring up actually. Um, just to spice it up a little bit, Scott Lewis is in YouTube asking, how do we get all this AI goodness without creating an insurmountable amount of future tech debt wrapped around an explosion in backwards compatibility issues?
[00:24:32] I love the bombastic question, uh, around this one. There's. Uh, Jason, what's your quick take on this one from Scott?
[00:24:40] Jason Adams: Uh, I'm gonna read it again. How do we get all this AI goodness without creeping, creating an insurmountable amount of future tech debt wrapped around an explosion in backwards compatibility issues?
[00:24:53] Matt Cromwell: Yeah,
[00:24:53] Jason Adams: it's a difficult question to answer generically. I guess it would depend on what we mean by tech debt. Like what specifically is the technical debt that we're concerned about? Um, I think one example of this would be the MCP adapter, right? We're not trying to put that in core because we're not entirely sure where MCP is going to go, so that's more of an opt-in right now where it's like, we're not like, we're confident enough enough to say, it seems like AI is here to stay.
[00:25:26] Probably now around that, there's a bajillion protocols and things that are experimental, and we're not jumping on that bandwagon. We're making things like plugins that you can use if you want, but it's not going into core because to Scott's point, that very well could become technical debt. Um, it's also part of like not putting providers specifically in decor right now, like mm-hmm.
[00:25:51] We we're just trying to create the framework where AI empowerment is possible and easy, but not, uh, you know, chasing any, any fads that might otherwise, you know, die out and become technical debt.
[00:26:07] Matt Cromwell: I think part of his question is more of like if users are able to use ai. Skin core, they probably are gonna end up generating a lot of code over a period of time.
[00:26:21] That's probably a bit unmaintainable. That's a lot of the conversation that I've been hearing from folks. Hmm. Uh, that have concern, um, in general. Um, and, um. I mean, I think it's a valid concern in general. I don't, I don't think that core AI is enabling that right now. I think core ai, not having opinions about, uh, code and WordPress is enabling it more than anything.
[00:26:45] Uh, 'cause folks are just building whatever they want and throwing it into a plugin. And then, uh, going from there, you know. This, I think this is a, a broader issue, um, about AI slop, uh, ending up in your WordPress website.
[00:27:02] Jason Adams: I will say there is discussion happening right now around the question of what is WordPress core's relationship with AI generated code, um, and what are the guidelines or rules or anything like that that's like being explored right now because I've even seen it where like.
[00:27:22] Super well-meaning people would go, copy an issue, paste it in the codex or whatever, generate some extraordinarily over-engineered thing and make a pr. And then they would just do this with like four issues or whatever, and they're like, I'm contributing. And it's like. Thank you. Um, but then what can happen is like you, you know, if you're a core, um, contributor, you want to guide them through this, you wanna help them succeed and get this PR in shape and it can end up taking remarkable amount of time.
[00:27:54] Um, and so yes, like there's definitely thought around how can we. How can we have guidelines or even rules that, uh, help us to make sure that we're not lowering the standard in, in the name of, uh, you know. Let's just generate all the things with AI and just throw it in there and see what happens.
[00:28:19] Zack Katz: One of the issues that I think we are going to come across is everybody's exposing these abilities to the abilities API, and then coordinating what actually can, can be possible through these interactions with the different plugins is gonna be harder and harder to understand.
[00:28:36] From a user, from an ai, like how do we make it so that we're allowing people to build solutions rather than just stuff that doesn't actually work in the end? Like the, the solution thinking isn't part of the abilities API from what I understand. Like unless somebody creates an ability that integrates with hardcoded suggested, like how, if I'm at Gravity Kit and I want to build, I want to integrate really well with Jet Pack.
[00:29:03] What do I do? How do I, how do I tell Jetpack that? Like, uh, through the abilities API that, or how do I hard how, let's say we try to do spam filtering. It's so confusing how I wanna do spam filtering. So I, I do, I do then the abilities API and search for spam and then whatever comes up is registered and, or like you have to search all the abilities API for spam, and then have the AI.
[00:29:27] Figure out what the abilities are and then choose the best ones somehow, and then implement that one and then send that to, I think it's,
[00:29:34] Matt Cromwell: I think it's a really good one. 'cause I think there's a lot of confusion around the abilities. API in general, like the, the value, the benefit, the why, uh, at least from product owners who haven't dug really deeply into the code.
[00:29:48] Zack has of course, but like, um, yeah. Maybe a little primer Jason, on the how the, why, the benefit of the abilities API.
[00:29:57] Jason Adams: Yeah, and I'll tell you, like for me as somebody with a product background, what was so exciting to me about it when I first heard it, so, um, if you, to Zack's point, if you go to TEC and then GiveWP and then Gravity Kit and then Jet Pack, every single one of these products is gonna have some sort of way that they want others to integrate with them.
[00:30:22] Right. If it's give, Hey, you wanna make a donation, here's a way to do that, right? If it's TEC, do you wanna update an event? Here's a way to do that. Um, what historically none of these have had is any kind of a unified way of presenting that public facing API. So one of them might be a bunch of functions.
[00:30:46] Somebody else might be object oriented. Uh, somebody else might be one, you know, uh, like, uh, gravity forms is like the GF API class that just has a bajillion methods on it. Like there is no standard way of one discovering what is the public API. You just have to hope that that product or plugin, um, has good documentation or you roll up your sleeves and you jump in the code and you figure it out yourself.
[00:31:13] Uh, and so there just was no standard for. Hey, I as a plugin have a public way for others to interact with me, and so the ability to API is at its most fundamental level that. It is a public, uh, way of declaring to the whole world, or, and using internally. Um, here is a bunch of functions that you are encouraged to use.
[00:31:42] They're self-documenting in that you know what the input is, you know what the output's going to be. Uh, they're multi contextual. It can connect to the command palette, it can connect to the rest. API, it can connect to MCP, right? Like in a single. Place you have the ability to connect all of this together, but so, so.
[00:32:03] To land it. To answer your question, you would ideally have like a gravity forms or whatever. Um, you know, you can filter by their namespace, their unique namespace, see all the abilities they have, see one that fits, you know, the description and such fits what you're looking for. You go, it's self-documenting.
[00:32:23] And in the AI experiments plugin, we actually just merged a pr. There's just a list table of a UI discoverable way of being able to search the existing, uh, registered abilities to make it even easier.
[00:32:36] Matt Cromwell: Hmm. That's.
[00:32:38] Jason Adams: So it's self-documenting, it's discoverable in a unified way, and that is so helpful so that you're not having to run around and just be like, please, please have, have good documentation.
[00:32:48] Please have updated your documentation. In the last year, uh,
[00:32:54] Matt Cromwell: Jay, Jason, and I've had these kinds of conversations a lot, so he's used to me asking like, really basic dev questions. Um, I wanna translate it just one step further. Um, a lot of plugins, maybe all of them in some ways, uh, have leaned on, um, actions, um, and filters and things like that as the way to interact with their code bases.
[00:33:17] Um, is the abilities API like, uh, actions and filters 2.0, or does it point to the existing actions and filters as. Like a map towards them or just trying to navigate for the folks who dev like I do.
[00:33:34] Jason Adams: Really good question. So they live side by side with a very similar purpose. Um, so hooks or actions and filters is a way of interacting with a plugin in a moment in time.
[00:33:50] Right? So it could be like, uh, uh, for GiveWP, you'd have like a donation created action. So I can connect to that action and I can say, Hey, I as this third party plugin, I wanna do something like send an email or connect to a Salesforce or whatever. I wanna do something every single time a donation is created.
[00:34:13] So hooks are a way for a plugin to say, I am formally giving the world a way of interacting with me, in particular moments in time. Either through an action, which is a thing has happened, or a filter, which is, I have some data. Do you want to do anything to it before I move it along? Uh, abilities are, um, are a, well, it's that it's an ability.
[00:34:41] It is a function. It is a, it's not a moment in time. It's not tied to a moment. It is tied to an action. Sorry, that's not a good word to use. It is tied to a function. Um. Of like, I want to create a donation, or I want to update a donor. I'm not waiting for some moment to occur. It's just something I want to do because I've decided to do it.
[00:35:06] It makes sense in my context within this plugin. Does that make sense?
[00:35:10] Matt Cromwell: Mm-hmm. Yeah. Yeah.
[00:35:12] Zack Katz: And when you say, I. Are you assuming the end user or are you assuming other plugins as well are, how should plugins be interacting with the abilities API or should it only be through the command palette that, uh, that users interact with the abilities API?
[00:35:29] Jason Adams: Yeah. Uh, so for plugin developers, uh, first create abilities, uh, and again, think of this as your public portfolio of things. You welcome others to do. Um, you know, it like sticking with like GiveWP, it's very common for folks to want to create a donation, update donation, delete a donation, you know, create a donor update, you know?
[00:35:55] Right. All of those like basic actions, um, that people may want to perform because they're, you know, they're doing something, they're creating some integration and they want to perform these things with that connect to GiveWP and GiveWP will know what to do with that in that moment in time. So, so first is.
[00:36:13] Create actions, um, and view, or I keep saying actions,
[00:36:17] Matt Cromwell: abilities,
[00:36:18] Jason Adams: create abilities. Oh, it was a trouble. Uh, create abilities as a way for the rest of the world to be able to formally connect with, with your plugin. And then two, use other people's abilities. Um, you know, because again, that is the, um. You are, you're playing ball.
[00:36:37] You know, you're saying, I'm using the, the ability that you've defined in the way that you have said it should be used. Great. And, and I trust that, you know, this is the right way to go about it. As opposed to like, when you dig into somebody's code and you find some very random function that they never intended anybody else to use, and you're like.
[00:36:57] Oh, I'm gonna use this 'cause it does what I want. It's like you don't know how fragile that is. They may change that later because they don't even realize anybody is using that publicly. Um, does that make sense?
[00:37:09] Zack Katz: Yep. I think so.
[00:37:12] Matt Cromwell: Nice. I wanna bring in another comment here from one of our viewers. Max here is saying, going back to the MCP issue, and you kind of addressed this Jason, I think a little bit already, but Max says, wouldn't it also be beneficial to have many things more rely on file formats and core web technologies to avoid a function calling interface lock in like MCP?
[00:37:40] Jason Adams: Yes. I don't know specifically what like file formats or core web technologies are being referred to here. But I, I do agree that, uh, yeah, that like things like the MCP should be. Extraordinarily optional. Um, and, you know, even for like WooCommerce to have introduced MCP, like maybe it's not gonna be the, a good long-term thing, um, you know, but they, it was important to them to do it in such a way that it was like opt in.
[00:38:11] They're not trying to like fundamentally shape all of WooCommerce to rely on this. It's just like, hey, for those. Experimenting with this right now. You can try this if you want to.
[00:38:22] Matt Cromwell: Yeah.
[00:38:22] Jason Adams: Uh, so I happen to having that way of going about it, but otherwise, like, depending on what file format and core technologies are talking about, like Sure.
[00:38:31] Zack Katz: Yeah. One of the things that I think that, like in terms of my takeaway from the abilities API is that it's a facade pattern on top of any all your code, which if for developer, for non-developers, that's like, it doesn't matter what's going on behind the scenes. All that can change. But if you know that somebody's gonna want to create a user and give or like a donor and GiveWP, you expose, create donor, and every other piece of code behind that can change.
[00:38:59] But as long as the stable ability remains, uh, then that's what matters. So, Hmm, exactly right. It really simplifies things. It is. Somebody, uh, earlier made a comment that says it seems like an, uh, evolution of the rest. API. And, uh, things like soap and things like that. Um, I, I think sure, rest API I've never loved, uh, 'cause it's very complex.
[00:39:23] Uh, in terms of like the, the response type, I think the ability as API is a more elegant interface for WordPress, uh, than the rest. API has been for me as a developer.
[00:39:35] Jason Adams: I mean, they're different, right? Like soap and rest is about external communication.
[00:39:41] Zack Katz: Mm-hmm.
[00:39:41] Jason Adams: Um, and abilities is about internal function.
[00:39:44] Matt Cromwell: Mm-hmm.
[00:39:45] Jason Adams: Um, you know, abilities that they're in their simplest is a multi contextual, public functional API. Um, but it's like, it can be, when I say multi contextual, it could be used in rest. Could be MCP, could be these other things, and you opt into that on a probability basis. Do you want this ability to be available these different ways?
[00:40:07] Um, yes or no, but at its simplest it is. You know, it's meant to be run inside, you know? One plugin running PHP, another plugin running PHP, you know, executing the ability. So like, yes, they can connect to rest, but that's not fundamentally what abilities are for. So it is different from like rest or soap or something external facing like that.
[00:40:31] Matt Cromwell: Yeah. Another, uh, comment question. I think it's just a comment, but I wanna piggyback off of it. Uh, also from Max, he says, I love WordPress now. It was, it's so great to quickly test and develop plugins locally. I also pair, it also pairs nicely with the agent browser skill and cloud code, allowing the browser to use chromium to click and interact.
[00:40:54] Um, this has also been my experience. Personally. I've been experimenting a ton with ai, uh, locally. Um, using WordPress Studio and Cursor and doing all kinds of skills and rules. Uh, and it's empowered me to do things, uh, funny enough, like. In the past, whenever I was stuck, I would talk to Jason. I would be like, Jason, I'm stuck.
[00:41:16] So like, secret's out. I literally, I call Claude Jason. That's what I do. I'm like, Hey Jason, tell me how to do it. Um, but um, I, I think it's amazing. It's unlocked tons of things for me personally. Um, I'm wandering, uh, along with Max's comment here, um, how much of what. Uh, core AI team is doing is thinking not just about what is going into core, but how everybody can work better with WordPress.
[00:41:45] Um, as developers, is there gonna be like best practices that's gonna be talked about, uh, publicly or like, uh, thinking more broadly than just the, the code base, but how everybody interacts with WordPress going forward is kind of where my head is going.
[00:42:01] Jason Adams: Hmm. Yeah. I mean, the guidelines that I referred to earlier is kind of part of that.
[00:42:08] Matt Cromwell: Hmm.
[00:42:08] Jason Adams: Um, I will also take this moment to do a plug of like, please come join the party at Core ai. Like,
[00:42:17] Zack Katz: oh,
[00:42:17] Jason Adams: yeah. It is not an exclusive group of people that we're just like, we are the representers of AI and WordPress. Like, uh, we're, we want people to join. So if people like have these things on their minds, like, you know.
[00:42:30] We have a lot of ideas and not nearly enough time to execute on every single idea we think of. So like, all of these things are awesome and we'll probably get to it at some point. Yeah. Um, but yeah, like I, I love the idea, I want to see more like guidelines, best practices.
[00:42:49] Matt Cromwell: Yeah.
[00:42:49] Jason Adams: You know, as we continue to experiment on all of this stuff.
[00:42:52] Yeah.
[00:42:53] Matt Cromwell: I mean, I'm thinking a little bit of like. Um, the WordPress Coding Standards project is still excellent and useful and necessary. I think it's more necessary now. Yeah. It's a lot easier to work with it, um, than it was in the past. You just tell Cursor to set it up or clot or whatever, set it up and it, yeah.
[00:43:11] Um, but maybe there's special ways to like, to enhance the WordPress coding standards, um, to address, uh, Claude and Cursor a lot more directly. Or there's maybe a, a, a project just like, um, WordPress coding standards that needs to be a parallel. Uh, Zack, I'm sure you have thoughts about this too.
[00:43:32] Zack Katz: Yeah. Uh, Jason, is there any movement toward including something in the WP Scripts package that is like.
[00:43:40] AI related or, uh, I don't know. Yeah. Agents, md uh, is a good example of
[00:43:47] Jason Adams: that. Yeah. Yeah. So, um. Yo, we are WordPress, so we want to be very, yeah, AI is a crazy runaway train right now, right? Mm-hmm. And you know, we wanna be very responsible and very mindful of like, what are we getting behind right now? Um. So like agents, MD is a very small example of that where like, I think it's the Linux Foundation now, right?
[00:44:13] Owns that where they, where you're seeing specs and open source things starting to rally, and that's a really comfortable place for WordPress to explore and to be like, oh, okay, so this is an open source spec. We're not backing. It is not political. This is just a free, open thing now. Great. This is really safe territory for us to, uh, to explore.
[00:44:37] So things like, uh, I think on PHB AI client or client, like some of these, like you're starting to see agents to MD being introduced, which for those who don't know. Is, um, a standard for context for when you're using an agent to like codes like Cloud Code or Codex or something like that. What it'll do is when you give it a prompt in this repository, it'll see that agents.md file and it'll read it first every single time and be like, oh, what does this tell me about this project?
[00:45:06] What's this important context that I can know? Uh, and so there's. You know, definitely I think some really great exploration that can happen, especially as we see more open source specifications take place so that we can more safely check it out. So.
[00:45:24] Matt Cromwell: A hundred percent. I love it. I think, I think that kind of thing is gonna be really useful going forward.
[00:45:29] Um, I, I would love to see examples from plugin authors who are already thinking about how to empower other people to interact with their plugin code, um, and see what they're building into their plugins for these types of things. Um, I think that would be really powerful and useful, uh, as well. Um, but um, so
[00:45:49] Zack Katz: one of the things that, uh, I'll just talk about some of the other ways that Gravity is thinking about helping AI understand our plugins, uh, outside of.
[00:45:59] Outside the Abilities framework, which is really important of course, but like, um, the, uh, gravity Kit Dev we just released, which is a Docus source built website, um, gravity Kit's got a bunch of plugins, right? And so it's hard to make sure that all of our plugin filters are all Automattically updated. And, uh, with our, uh, we do a really good job of doing inline.
[00:46:22] Filter documentation, but then going in and updating our doc site to update the doc, the filters to make sure they're correct and the coding examples are correct. All that stuff is really hard. Um, so one of the things we've been doing is we clone all the repos into one uh, folder, and then we have the WP uh, hooks documenter.
[00:46:43] Uh, package run for each one of the plugins, builds a Docus source website and updates it. And so that we have that run on Aron job now and using GitHub actions so that all of our plugin filters and like hooks and actions, all of those are all updated Automattically all the time with the latest code.
[00:47:04] Mm-hmm. And what we're planning on doing is adding more examples to that, um, and keeping that updated in line in the code. So that we don't have to maintain documentation separately, which is a huge pain in the neck. If you've ever tried to maintain a code-based documentation,
[00:47:19] Matt Cromwell: and Zack, you're planning on doing a writeup on how you did that and publishing it on the WP product like website.
[00:47:26] Zack Katz: So here's the thing with ai. Right. We did a lot of, we, so we forked the WP Hooks documentary package, which is a great package. It also didn't have a couple of the, like, it didn't have support for deprecated tags, it didn't have support for a couple other things. And I wanna take the time to do a pr back into, into the, the, into the main plugin Nice.
[00:47:45] Or package that takes time. So instead, I've just felt, spent the time building it out. And releasing it. But then you're right, I need to do a good job of contributing back to the, the open source framework that
[00:47:59] Matt Cromwell: contribute whatever,
[00:48:00] Zack Katz: contribute, be a good member of the community, yada, yada.
[00:48:03] Jason Adams: Right. I would also love to see something that, uh, does the same exact thing with documenting abilities.
[00:48:09] Hmm. Uh, so it goes through your code, uh, finds all the abilities, and then documents that as well. I, I think that would be another really great way of doing that. Uh, although it wouldn't even like go through the code. It would literally be like A-W-P-C-L-I command that just outputs, here's all your abilities done.
[00:48:28] Like, go for it.
[00:48:29] Zack Katz: That's a good, that's a good hack. Uh,
[00:48:32] Matt Cromwell: I love it. Cool. Cool. Well, we are at time. Unless Zack, I want to talk about best advice unless you have some other, are we, are we good? Best advice? Yes.
[00:48:44] Zack Katz: I mean, best advice, uh, I think Jason had it great. Okay. Which is like, play around with it. Create a, create an ability and see what that takes.
[00:48:52] Matt Cromwell: Yeah. Yeah. No. Okay. I just wanted to make sure that we're time, we're good for going into best advice right now, folks.
[00:48:58] Zack Katz: Yeah, sure. Best advice. Yeah, let's do
[00:49:00] Matt Cromwell: it. Yeah. Best advice is, um, you know, elevator pitch from what the subject we're talking about today. Somebody corners you at Word Camp us. This is going to happen to Jason for sure.
[00:49:11] Uh, somebody corners you at, at WordCamp us and is like, Jason, what do I do to get, uh, to leverage AI in my plugin? What is your elevator pitch? 30 seconds. Uh, Jason, you go first. Go,
[00:49:23] Jason Adams: uh, think outside the chat interface. Um, right now when people are thinking ai, we're the bar of this like, imagined chat interface is so high.
[00:49:35] Like it has to be agent, it has to loop, it has to, you know, all of this crazy stuff. Uh, and I'm pretty convinced that a lot of the benefits of AI are gonna be very subtle. Um, because we don't want to miss out on the fact that we have for decades now really honed in on what is a good ux. And AI does not suddenly invalidate that and throw it out the window despite a lot of our thinking.
[00:49:59] Matt Cromwell: Mm-hmm.
[00:49:59] Jason Adams: Like, no, we know what makes a good user experience bring AI into that in a subtle way. Right. That is, uh, that continues to help the user feel empowered, uh, and. AI agents is one way of doing that. It is not the way of doing that.
[00:50:20] Matt Cromwell: It's almost as if Jason knows exactly what we're gonna be talking about next week, actually, um, which is user experience anyway.
[00:50:28] Zack, what's your, uh, yeah,
[00:50:29] Zack Katz: Jason. I, I wouldn't say that WordPress is, uh, demonstrates regularly that we always know what the best user experience is. We, we work toward, we work toward it as a, as a collective consciousness. We all try to make it better, but like, oh, holy moly. Um, yeah, that's one of the things that, one of the thing ways that I see WordPress evolving is more application focused and more outcome focused and less having users connect the pieces.
[00:50:57] And I feel like the, uh, WordPress dashboard redesign is going to maybe be behind the times in this if we just try to re reproduce the same. Uh, content structure, but better. I think like having it rethinking what people are actually using their websites for is one of the main things that each of us as plugin owners is going to have to do.
[00:51:17] Yeah. And make sure that we're well aligned with the outcomes that they're trying to accomplish, rather than the, how do we do this? Like gravity kit. We have tons of docs for like, well, you do this, then you do that, then you create a form, then you do this. That's none. Nobody cares about this. All they want is the outcomes.
[00:51:32] So as WordPress plugin owners, my best advice is think about the outcomes and like Jason said, try something. Ship an experiments branch of ear plugin that people can install and go way off course and see like, is this a better experience? And then if people love it, incorporate it into your plugin. You have the ability to do this, um, and you can register abilities to do this in the future.
[00:51:54] Matt Cromwell: Absolutely. Yeah. Love it. My advice is like, just do it. That's what I've been doing personally. I've been just doing it. I, that's
[00:52:02] Zack Katz: my advice normally. Hold on a second.
[00:52:05] Matt Cromwell: Um, I, I've experimented a lot with trying to make AI work in a one-off plugin. I did a, a plugin called TLDR wp, which was kind of the precursor to what AI.
[00:52:16] Uh, experiments is already done now. Um, and I, I made sure that it was, uh, dependent on. Felix a, um, AI services plugin previously, and then it was like, well, that's not gonna be the future. The AI experiments is gonna be the future. So I just like switched it up. And now TLDR WP depends on AI experiments instead.
[00:52:36] Um, and it works great and I love it. I think it's super fun. Uh, and then the other one, um, I also did, I just, uh, launched a front fun free plugin called Synced Pattern Popups. Um, check it out. It's a lot of fun. Uh, and it, uh, has an optional TLDR feature, um, because I wanted to bring that in there as well.
[00:52:57] And if you turn on that feature, it Automattically installs AI experiments for you. And then you put in your, your credentials there and not your credentials, your a p keys there. And then, um, uh, and then you have A-T-L-D-R feature in that plugin. And it's been super fun to figure that out and to figure out the.
[00:53:15] Abilities API, I wouldn't have been able to talk about any of these things or follow Jason and Zack at all if I hadn't had experimented to death with all that stuff. Um, and uh, and I'm really a web dev. I'm not like a techie full stack dev at all. So, um, it's been awesome and cool. I've definitely, uh, been in the, in the wings when it comes to the core AI meetings, uh, every week.
[00:53:39] Um, and they are talking about all the great stuff. Um, and so I agree with Jason, join the weekly meeting, uh, whenever you can on Slack. It's super cool. It's, uh, a great way to see how things are evolving. Um, and um, yeah, that's not an elevator pitch. That was a lot of great best advice, but that's what I would say to folks for sure.
[00:54:00] So anyway. Cool, cool, cool. So everybody, thank you so much. This has been great, Jason. Thank you so much. Tell everybody where they can find you online so they can, um, nag you and ask you all their questions online later.
[00:54:14] Jason Adams: I think probably the two best places, well, three, I guess, uh, the WordPress, uh, slack. Am I there?
[00:54:21] I'm regularly on there, so honestly it's probably the best. Yeah. Uh, if you wanna find me, you can DM me, you can hop on the core. I channel. I'm there, I'm around. Uh, I'm also on X and I'm also on LinkedIn. Uh, you're welcome to find me those ways as well. Um, but yeah, I try to be fairly approachable, so feel free to reach out.
[00:54:41] Nice.
[00:54:42] Zack Katz: You seem like a fairly approachable guy. Yeah.
[00:54:44] Jason Adams: Oh, thank you.
[00:54:46] Zack Katz: If you're enjoying these shows, please do us a favor and help hit that subscribe button on YouTube. We're trying to get to 10,000 subscribers and you could really help us out right now. It's free, it's easy. It helps support our work. Special thanks to free me, us again for sponsoring the show,
[00:55:00] Matt Cromwell: and next week we have another ex give person like Jason, who's also at Automattic now, like Jason.
[00:55:09] No, other than my longtime partner in crime, Devin Walker is gonna be joining us next week. I'm excited for it even though I'm not hosting. Um, he's been doing some really cool stuff as he's leading up jet pack, he's focusing on the ux and I think that, that, like Zack has been saying, uh, today, that is a sorely needed focus in the WordPress space in general.
[00:55:31] Uh, and it's super cool to see what Devon's been able to do. Uh, heading up Jet back over there. He's gonna talk all about it, so. Tune in next week and uh, we'll see you then. Thanks everybody. Bye.
[00:55:42] Jason Adams: Alright, thank you.


