Back to the talks Previous by track: Emacs and private AI: a great match Next by track: Modern Emacs/Elisp hardware/software accelerated graphics Track: Development

Common Lisp images communicating like-a-human through shared emacs slime and eev

screwlisp (he/him, they/them) - IRC: screwlisp, https://gamerplus.org/@screwlisp, https://screwlisp.small-web.org/

Format: 26-min talk ; Q&A: IRC Etherpad: https://pad.emacsconf.org/2025-commonlisp
Etherpad: https://pad.emacsconf.org/2025-commonlisp
Status: Q&A to be extracted from the room recordings

Talk

Q&A

00:00.000 Opening 02:08.240 Q: What do you mean by "the agent is running slowly"? 03:00.640 Q: Do you think that it would be too hard to add a second way to send commands from Common Lisp to Emacs? 06:37.760 Q: What is the leonardo system? 09:27.280 Q: What is LambdaMOO, and how do we use it? 11:01.340 Q: It seems like you're trying to build a more restrictive Turing test using the input / output logs of an emacs conversation. Is that accurate? 15:52.160 Q: What do you mean by slowly?

Duration: 18:24 minutes

Description

Demos a typical orgmode user's regular useages, segueing into Eduardo Ochs' eev executable-logs emacs style generally emphasising language/target interoperability ANSI common lisp / C / emacs lisp / org-mode / eev homed around eev.

On the theory that an agent is intelligent to the extent it is human-relatable, an autonomous software agent is started which receives messages pushed to an emacs lisp list, but otherwise does its own thing using eev eepitch, just like the human does.

Good as a normal lisp-user emacs example underscoring the org-mode and eev focused talks feeding into using software agents that use emacs/eev exactly like the human does via my port to emacs of Sandewall's 2014 Leonardo system software-individuals release.

Naturalistic style.

Some related blog articles.

Weekly shows past.

Q&A will be on IRC and in LambdaMOO.

Q&A in LambdaMOO:

As an experiment, screwlisp will also be taking questions from LambdaMOO. Here's how to join:

  1. Use M-x telnet to connect to lambda.moo.mud.org 8888. Alternatively, you can use a web-based client like https://mudslinger.net/play/ or rmoo.el (see rmoo.el note below)
  2. connect Guest to connect as a guest. If that doesn't work, please ask in #emacsconf-org and we'll try to get you sorted out.
  3. Agree to the terms by typing YES.
  4. Teleport to where the speaker is by typing @join screwtape.

To say something, start with " and omit the ending quotation mark, like this: "Hello everyone!. To say something to a specific person, start with a backtick (`) and the person's nick, then your message, like this: `sachac I made it to LambdaMOO. Use help communication to learn more about other communication tools, such as : for emoting and whisper for sending private messages.

rmoo.el note: You may need to define process-kill-without-query if it doesn't exist on your computer. Here's a use-package declaration that might be a good starting point. If your version of use-package doesn't support :vc yet, you can check out the code from https://github.com/toddsundsted/rmoo and add it to your load-path, or use M-x telnet for now.

(use-package rmoo
    :vc "https://github.com/toddsundsted/rmoo"
    :init
    (unless (fboundp 'process-kill-without-query)
        (defun process-kill-without-query (process &optional flag)
            (set-process-query-on-exit-flag process nil)
            t))
    :config
    (rmoo-worlds-add-new-moo "LambdaMOO" "lambda.moo.mud.org" "8888"))

You can also ask questions via BigBlueButton, Etherpad, or IRC, and the host will try to make sure your question gets to the speaker. Enjoy!

About the speaker:

Flocking lisp images with Screwlisp (Lispy Gopher Climate and https://screwlisp.small-web.org/).

Transcript

[00:00:00.000] Introduction
Hey, everyone. This talk is on this tradition, intelligent agents in Emacs using my Leonardo software individuals, which I've mistyped as I just wrote here, I see. Thank you to Sacha and everyone at EmacsConf and Emacs, I guess. Sorry that I was running late. I'm screwlisp.small-web.org. I run those one or two weekly shows for a long time, the Lispy Gopher Climate. I'm active on the Mastodon at @screwlisp@gamerplus.org. I'm screwtape on lambda.moo.mud.org. And I ported, over the last kind of year, years, to some extent, I ported Eric Sandewall's system for developing intelligent software agents, which he finished working on in 2014. I got it working again around 2025. First, we're going to take a long arc. We're going to motivate... This is the idea. You can see I'm using Org Mode, which I hope provides a good example for all the Org-Mode-oriented talks this conference. But you can also see that I'm using Eduardo Ochs's eev minor mode with Org. But we can see a little bit of the difference between these two, and that will kind of evolve into my style with the agent communication in Emacs. So you can see I used eev anchors as my Emacs headings. In eev, you just evaluate Elisp expressions as links to places. An anchor will link you somewhere else in the document. So my table of contents links to my talk, I guess. Anchors come in two halves, so that's why I built that unique table of contents experience there. What else am I going to say?
[00:02:21.480] Totally normal computing
So first, let's just do some totally normal computing because intelligence is going to be difficult to describe. Let's just try and compute normally in Emacs in Org Mode and then segue more so into eev, and then maybe I would like if an agent was intelligent, I would think that an intelligent agent would do something like what I'm doing. It should be recognizably similar to what I do myself. I don't think the word intelligence is relevant if it's not related to something I'm not familiar with.
[00:02:55.680] Using Emacs as a human
Using Emacs as a human, reading headings from my article, using Common Lisp. Right, my friend jeremy_list wrote actually a big project, but part of it was base64 encoding, and I just yoinked his C code for base64 encoding, I think. This is just clearly some C-based 64 encoding. If you go to my blog, his project is actually a C++ project and you can see me doing this with C++ rather than C. But basically, you can go to my blog articles if you want more detail to read something instead. And then here's some embeddable Common Lisp, Jack Daniel's ECL ANSI Common Lisp compiler I guess. This is just what it looks like. You can see I'm using Org Mode trickily, using noweb to put the lines of the C source block in this one. We're tangling it to this file rather than evaluating it. So, you know, literate programming, tangle and weave. We're just using Org Mode like the other Org Mode people are all showing us this conference, I guess. Then we have to compile it. It's always hard to remember these invocations for me. Results file. The file is my .fas file, because the way ECL's C and C++ integration works is that it just has to be seen by compile-file in Lisp. I cached this earlier. Oh, I should actually start Lisp, actually, shouldn't I? How are we going to do this? (setq inferior-lisp-program "ecl"). We could M-x slime. Because... we better actually load this. I did a dry run before. I think we can just load this, because I already did it. But I cached it. Let's nuke the cache. Okay, I'm going to say that that probably worked. Now, as you saw, that base64 encoding was just, I guess, number to character code to other character code. So I wrote this higher-level Lisp one, but that's not really the point. Obviously, Emacs also has Base64 encoding. It's just a point that we might have C++ and C external programs that we'd like to be integrating into our Emacs agents capabilities. Here we can see a normal named Org Mode source block. that calls that function, then an Org Mode source block that calls Emacs's base64-decode-string as a way of validating it, I guess. We go to Org, so we can see... I have a named call to that function calling the Lisp function Org is just kind of like this. It's cached but I don't seem to have run it before. Then I do the Emacs decode. So if we just run this using C-c C-c, and we can kind of see what Org Mode is like a little bit here. All right, yes, so as we can see, oh hang on, let's run this as well actually. So the C embeddable Common Lisp base64 encoding gets us this. And then Emacs is decoding and gets us back, kind of validates it. I think I'm missing some things. I don't pad characters out to the correct byte lengths, that kind of thing, but it's fine.
[00:06:45.400] using this via eev as a human
And then I kind of contrast that to, I really like what my friend mdhughes.tech, game dev of the ages, calls REPL-driven development, which he says is kind of the opposite of literate coding. I think eev, at least for me, is kind of like REPL-driven development. So in eev, if you just press F8, the thing happens. And if it's a red star line, the thing is an Emacs Lisp thing, and otherwise it goes to the eepitch target. So if I do this, great, now I'm pitching to that slime REPL ECL I made. And then I pressed F8. Press F8 again. The string got coerced to a list. F8. Now it's car codified. I quite like this, because this looks like something I can do and understand doing and reason about doing. Then I form a command to send from Lisp to Emacs. Then I do it and I recover the string from the beginning. I guess I had one of these here. Oh, by the way, look at What Org Mode did with an eev source block. And then when I close the source block using C-c ', it brings me back to the Org doc, which was a cool synergy between the eev minor mode and eev source blocks in Org Mode that I noticed. And so I kind of want my agents to be like this eev usage. Clearly, Org is super powerful, but I don't even like writing calls like this, where you write the function that will happen last first, so you're kind of writing right to left, first to last. Whereas in REPL-driven development, I guess I'm writing top to bottom, and eev, I guess, executable logs are logs that are like that. So I kind of like eev's view for reasoning more than Org's Tangle. Obviously, Tangle is trying to do tricky things, but maybe they have different specializations, and eev's one is more close to my own version of intelligence, maybe.
[00:09:07.800] Software individuals using eev in Emacs like a human
Software individuals using eev in Emacs like a human. Yeah, you can always visit my blog post for more detail. Right, I made a CLOS object in Common Lisp to wrap doing this. It's not really the topic. It's in the appendix somewhere if you need it. So I've just executed that. You can look at the appendix in your own time.
[00:09:32.080] Sandewall's leonardo system
Jumping over to actually starting our hypothetical intelligent agent. I guess we're doing eev here. So if we open this, press F8 a bunch of times. Oh, and if you were cloning it yourself, I guess that's what you would do. setq eepitch-buffer-name. Oh yeah, if you went to an eepitch shell and then came back. You would have had to do that, but I didn't. I didn't, so I didn't need to. Sandewall's style is to use relative paths to tell which agent is acting inside a software individual. Remembering a software individual is potentially a bunch of agents. And we load... So one individual, all the agents in each individual share a kernel. So only one agent in one software individual is active at any given time, but the agents are separate. They just all have to share the kernel resource, which is the Remus agent. Oh, I got rid of this. And start the CLE is the thing. Oh, I did need to have an EmacsConf knowledge base. Well, let's just keep eepitching for a little bit. So I think I made... I'm going to call it emacsconf-kb. Right, that looks likely. And I think that the agent... I can check this. I could have checked that. I could have done something like (get emacsconf-kb contents). Yeah, and you can see there's a location inside it which is agent1, which I assume is an entity file that I was working with before. And then what were we going to do? Oh yeah, back to the embeddable Common Lisp image. So if I just press our button back to there...
[00:11:36.100] Start a loop for one leonardo software individual
And so my idea is that for an Emacs agent, basically, I'd like to have an Emacs Lisp list. And just when stuff gets into that list, the agent which is always running, but running slowly, will incrementally just do the stuff it finds in that list. Populating that list probably gets into stuff like your Beliefs, Desires, Intents framework and those kind of well-known and well-studied algorithms. That's not the point here. I just want to have a list in Emacs that my ECL... I'm just going to run a loop in ECL, and the ECL is going to keep sending anything it finds in that Emacs Lisp list to the software agent. The agent is also in Emacs, so it would be able to populate its own list itself if it had an idea of evaluating desires and chances to improve whatever it wants to improve and chances to avoid whatever it wants to avoid. We talked a little bit too much. Let's just start this. Sorry that I'm manually setting up my screen. Then let's put CLisp over here. Right, we could work with this, right? This loop isn't very important. It's just a Common Lisp loop. I copy my friend jmbr's style of using Lisp machine-style keyword arguments instead of symbols like cl-loop, the compatibility thing in Emacs Lisp does. I'd never initialized that. Well, let's do that. Okay, now we have the list. And just every 30, let's turn it down to every 20 seconds. Hypothetically, it's going to put whatever it finds in there, into there. And so, I think, yeah, and now... Great. So here I'm just going to fill it with stuff. And this is quite interesting, I think. It just shows I can put a whole bunch of stuff into that list. Ideally, the agent would populate it itself with a BDI algorithm or something. But if we just put some stuff in there, we'll see that it will all get sent basically using Eduardo's eepitch internal machinery, at least. And hence, it meets my requirement that it works exactly like I work. And then in eev, I just have to press M-e. Oh, it works via Emacs server, and I didn't start that, so if we server-start, hopefully... And then, ideally, things will just begin happening in this slime-repl C/Lisp agent. Oh, if this was still running. Okay, well we got at least one, but hypothetically lots of these will happen. So, show agent, I guess, happened over here. I put a whole bunch of "sleep-for"s in, because I thought that going slowly would make it seem more human. Like I saw in Eduardo's talk last year which is where I learned about eev. The system is a little fragile. Hypothetically, we have a whole bunch of agents. I guess every time it gets sent, it checks that we're in the right agent. And it's not actually just sending a string, it's sending a sequence of string actions over there. And so we see Emacs Lisp hypothetically put, I guess it put this "foo bar baz!" into an entity, message-1, which should be of type message, I guess, conceivably. I forget if I set that up earlier. It's in the appendix somewhere. And then it just called, it did a sequence of actions which was really just one action of showing that. And then I called b64-encode on message1, which I believe will have set message-1 encoded. Can I check that manually while it's happening? Disaster. Well that's what it should have been. Well, I did mention it was a little bit fragile. What if we put... Can we kind of rescue this? I don't want to try redoing this. It's slightly fragile. What it would do, we can see the actions are kind of getting there, but somehow my message didn't end up getting encoded by that sequence of actions. So this decode will have also made the decoded one be null.
[00:17:23.280] Let's do it manually
Let's just do it manually. Should have worked. b64-encode, which calls out to Emacs to get everything actually done. Oh, I got interrupted by the agent. Well, if I do it manually, it worked. Hypothetically, the queue thing should have worked. Great. Well, you can see it's kind of working. Could be more robust. The reason is that I think what I did is a bit fragile, but the intent is that FIPA, Foundation for Intelligent Physical Agents's SL standard has tools for reliability through repetition and checking outcomes and that kind of thing. So I would use those. I'm not putting too much work into being ultra-reliable right now, but it kind of worked. We saw, I guess, at least Embeddable Common Lisp believed it used emacsclient externally, asynchronously, to send these to Emacs within Emacs. I put a whole bunch of sleeps into its thing to make it look slow and human-like, kind of happened because Emacs' model is that it's kind of single-threaded. Can I just... I bet if we run this again It'll at least look like it's succeeding because I fixed the base64 encoding and so forth in the background. I wonder if it will.
[00:19:11.400] Wrapping up
In the meantime, let's wrap up this talk to some extent. Then I'm just kind of saying what I'm expecting to happen. I took out next action. Originally, I was keeping the list inside of the agent. Then I decided to keep the list inside Emacs because I have kind of first class Emacs is my IDE, so I have better access to what's going on in my IDE.
[00:19:37.608] Intelligence
Then I wanted to talk about intelligence a little bit in whatever my remaining time is. I just have these great bullet points of Nosredna yduJ and Eric Sandewall. So Nosredna yduJ, when she was on the show quite a long time ago, she... I keep describing things as expert systems and she wanted to know what I meant when I said expert systems, and I gave her a Lisp software example and she said she personally wrote that software in the 80s that I was referring to and she wanted to know how it was an expert system. What I mean when I say expert system is a system that works kind of like I do and eev's eepitch does. It's where we can really reason in a very human-relatable way about what the inputs to the program is. And also a program should be exposed to other programs in terms of like a well-structured transfer of knowledge as inputs, and it should have a well-structured transfer of knowledge kind of outputs. I don't know why this b64-encode message wasn't working. Then we kind of faked it into working. It's going to be embarrassing for me if anybody watches this. But yeah, so yduJ's thing... And then I was going to also build that into Eric Sandewall's one. So this is my vision of expert systems as kind of maybe this is an important general style loosely associated with Lisp. Same as the Lisp editor Emacs. So Eric Sandewall's description of intelligence was that his grandchildren were intelligent. So if we had software agents that were intelligent, this would be true if and maybe only if they were similar to his grandchildren who were a good reference for intelligence. And grandchildren live for a really long time. They kind of learn gradually. They don't run on GPUs for a few minutes and then get thrown out forever, something like that. And so this is the kind of vision of, I guess, the Leonardo system software individual stuff. You can see we kind of faked it into... at least the show get message one decoded bits were working. I'm not sure what was happening with the Elisp ones that worked interactively, but then they didn't work in my loopy thing. Oh yeah, and then so I mentioned thank you to Sacha at the start of this talk. And so Eric Sandewall's emphasis that you'd really like intelligent software agents, Leonardo system agents, to be like your grandchildren. And I was talking to somebody, maybe to Ramin Honary who's doing the schemacs talk this year about Sacha's writing. A lot of Sacha's writing is about her experiences of life and technology, and especially raising A* and her observations of her progeny A*'s experiences of life and technology, I would say as well as being the Emacs News and Emacs conf doer that she is. Yeah, and so I think a lot of what Sacha is seen doing and concerned with are specifically what Eric Sandewall identifies as the study of intelligence as such, as should apply to computing as well. That was my thought on Sacha, Eric Sandewall, intelligence, and yduJ. I have this note from pizzapal... I didn't realize that Microsoft had announced that 2025 was going to be the year of the software agent. I only found this out in hindsight when I saw people crowing on the Mastodon about how Microsoft had basically declared that their Year of the Agent marketing campaign was a failure where basically people didn't like the same old web services but now while you're accessing, while you're formally kind of accessing a web service, the kind of web service that used to be called serverless web services, this kind of thing, but you're just being gibbered at by Microsoft Copilot while you're trying to use regular services. And people turned out not to like this. I think that, as we can see in this agent, the agent really needs to be running on its own clock and independently of you. Like if you imagine your body is getting novel, slightly speculative instructions from your brain constantly throughout your entire waking day, quite slowly, this is what an agent should be like. And it should be... Sandewall wrote about this. Basically, computer programs aren't going to want to use human natural language with each other. There's nothing desirable about that, so you wouldn't have two hypothetical Microsoft agents, which are just regular web services with a GPT model gibbering at you while you're trying to use the web service. I think we can see... Microsoft did the wrong thing with the word agent, allowing that agent is an overloaded term like static. I'm going to stop this. I'm not going to try and fix this. Sorry, everybody. Thank you. Talk to you on the Mastodon. Hopefully, see you on the show. See you at your conference talks. My blog has writing and examples of this with multi-agents, more C and C++ stuff, Lisp things. You're welcome to come on my show to be interviewed, however formally we do that. See everybody next time.

Captioner: sachac

Q&A transcript (unedited)

Recording started. Great. All right, you are live in Common Lisp on dev. This is Corwin back and I've got screwlisp with me, the host of the Lispy Gopher... Climate, I like to say. It used to be show. The Lispy Gopher show or the Lispy Gopher Climate. Thank you so much for joining us. Minutes. Yeah, we're just, we've got already a whole pad full of questions and we have a unique opportunity if you, if you check out the etherpad, you'll see some instructions there to join on Lambda Moo, with screwlisp, but I'm hoping you will talk to us a little bit about that as well as your, your very cool project. Oh yeah, so I main on Lambda, as Corwin is saying. And Corwin was pretending not to know the name of the show, but he has in fact appeared on an episode of it in January this year, I think. So he was just pretending there. I'm screwlisp of this. What's happening? 10 minutes or less before we started going live here, they were like, remember how you said you fixed that bug? And then I had to quickly recapitulate my whole talk. And I introduced some new bugs while that was happening. But let's go through some of these questions. We're all hanging out in LambdaMoo. So if you mx telnet over to lambda.moo.mud.org port 8888. This is where we're talking at the moment with people like Ed Swarthout, DM, and yduJ, who I gossiped about in the show, and Sacha, and people were there a little bit as well. I'm just going to read some of the questions that ggxx in LambdaMOO has been relaying to me there, though I hear that there are a whole bunch of them now.
[00:02:08.240] Q: What do you mean by "the agent is running slowly"?
Someone asks on the Etherpad, what do you mean when I say the agent is running slowly? Yeah, so if you saw in the talk, I was having the agent only attempt to act every 20 seconds. This is what I mean by the agent is acting slowly. So this is quite different to what people might expect within AI if people are talking about, like the graphics card ones where you try and crunch as fast as you can, for as few seconds as you can, and then you stop. In contrast, my agent is just trying to do a simple action every 20 seconds. But if you keep going continuously at a simple action every 20 seconds without sleeping for days, it still adds up to a lot. So that was the significance of it running slowly. What else are people saying? ggxx to screwtape.
[00:03:00.640] Q: Do you think that it would be too hard to add a second way to send commands from Common Lisp to Emacs?
Someone asked on the Etherpad, do you think that it would be too hard to add a second way to send commands from Common Lisps to Emacs? No, I put three of them together and I didn't talk about it because this is a kind of affected choice. Right now you're using emacsclient for that. That is the simplest way to implement. How about using the slime protocol? Elsewhere, I am just using the SLIME protocol. So, in everyone that's SLIME-connected. So, earlier on, you saw somebody running a swank server in Python. Normally, you run a swank server in Common Lisp. And a swank server is what Emacs SLIME, Superior Lisp Interaction Mode for Emacs, connects to. And then Swank comes with swank-eval in Emacs. So after you've been slime connected, you can trivially send Emacs Lisp forms to Emacs using swank-eval and Emacs. The reason that I chose to use Emacs server and Emacs client was that I was letting the Leonardo agent talk to Emacs using Swank, Eval, and Emacs. And I wanted my ECL image to be using a different notion of a server. So the ECL image, just because I chose to do it like this, is using Emacs client and Emacs server going via, I guess it's executing a program rather than using a shell. And yeah, I was letting somebody else use Slime eval in Emacs. It would have been simpler if everybody just used Slime eval in Emacs. I thought I was getting something out of adding Emacs server into the mix. What's somebody saying? yduJ is weirded out by doing get foo bar instead of get foo quote bar. Yeah, that was Sandewall's choice. He was trying to pitch Lisp to logic notation people, so he lets people put commas in and then ignores them in certain expressions, and he doesn't have these Lisp-style quotes. yduJ is obviously from like Schlumberger and wherever else she was at in in the kind of list of traditions. Full of Spain is saying good observation. yduJ is shocked that she's being mentioned. Interestingly Nosredna yduJ capitalizes Nosredna at the front, but she capitalizes yduJ at the back, just for clarity. You should read her Stanford page or her recipe site or anything if you're not clear on who yduJ is. Sacha, you're looking for the word ??. I think she ?? yduJ, I think is the English phrase that you're looking for. yduJ is saying she would not, no matter what I say, she's not going to hug my software agent like she would hug a grandchild. Eyes me warily. And Sacha is not going to... totally training a general intelligence who requires a lot of data and also cuddles. Okay, so everybody who has children is disagreeing with me quoting Sandewall, who did have children and grandchildren, saying that he wanted machine intelligences to be like his grandchild.
[00:06:37.760] Q: What is the leonardo system?
GGXX is saying somebody on Etherpad is asking what the Leonardo system is. Sandewall is a LISP scientist from the 60s, 70s, 80s, 90s, 90s, 10s. with things like bronze statues of him in Sweden. People outside of the Swedish-speaking sphere of science are less familiar with him. I guess he famously taught Robert Strand how to program in LISP, if that places him for you. What else did he do? Yeah, so he was on a kind of long trajectory of AI, which would now be called good old-fashioned AI. And he was coming from the situation calculus, then activity calculus kind of direction, which are extended first order logics for reasoning about change over time. And his last program he contributed to the world was this. From 2005 to 2014, he worked on this Leonardo system for his master's program. He was teaching at that time at the University of Linköping in Sweden. And... Then he just kind of gradually faded from view while he wrote his unpublished books on reasoning and change, I guess, between 2010 and 2014. And then I just kind of noticed this eventually. And I brought that software back. And that's what this is. And that's why it kind of weirdly exists. Welcome to Khaki Guest. Magenta Guest is gone. Pink Guest is gone. Blue Guest has arrived. Great. Somebody order six. Everybody orders sake from Emily. We're hanging out in Jay Lamott's sushi bar in Lambda, which is on the model railway on the table in the second guest bedroom in Lambda House where we're all hanging out. Oh, I think GGXX is ordering people up things. You know, just teach people about this. All right, I'm going to try looking at the etherpad manually. So the next question you have, somebody says, I found Eduardo's blog. OK, you just got through that. And then we were also, a question you answered is the other one that I see here, just about Lambda Moo. And I think you started to answer in the pad. But if you want to kind of read that out. I'm going to just talk to Khaki Guest in Lambda. Sure, so why don't you do a little bit and just read this question.
[00:09:27.280] Q: What is LambdaMOO, and how do we use it?
The question was, what is LambdaMOO and how do we use it? LambdaMOO is a module introduction, and you can tell that to it. There's instructions in the pad. I'll go ahead and drop that in the gen channel or in the dev channel chat right now. And I see it is already in there. But down at the bottom of the discussion links feedback area, you'll see a set of detailed instructions that screwlisp has provided us to get in there. I think that was actually GGXX who might have written that for us. Several changes evolved in the last 10 minutes before we went live here. But yeah, so LambdaMOO is the world's longest-running virtual reality. I guess it started in the end of October in 1990 and has run continuously to today. You can get there, ideally, with a MUD client. Technically, it's a MUD, comma, object-oriented. This is just where I hang out some degree of the week. yduJ is the wizard yduJ, or sorry, yduJ is also the wizard Nosredna of Lambdomoo, for example. It kind of fits into quite less history. I guess Pavel Curtis would have started in 1990 for Xerox PARC, originally. Just to go to what Khaki Guest has been continuing to talk about. Welcome to Brown Guest as well, I guess.
[00:11:01.340] Q: It seems like you're trying to build a more restrictive Turing test using the input / output logs of an emacs conversation. Is that accurate?
Aki Guest says, to Screwtape, it seems like you're trying to build a more restrictive Turing test using the input output logs of an Emacs conversation. Is that accurate? Can you explain this idea of if it is intelligent, I'd like it to be like me? Otherwise, I don't know what intelligence is. Doesn't that seem a little egocentric? Is that a joke or a genuine definition of intelligence? Why do you think the link between input-output of Emacs human input-output is stronger than other forms of Turing tests? So I'm going to misread Turing tests for a moment as Turing-complete. And Sandewall's system is very specifically Our first-order logic, if we don't extend it, is not Turing-complete, for starters. And things like situation calculus, McCarthy's situation calculus, which I guess is prior to Sandewall's Leonardo's calculus, are extended first-order logics for reasoning about change. And so they're slightly more restricted than conventional, than general-purpose computer programs. And then what you're saying is, if it's intelligent, I'd expect it to be like me. I'm really just paraphrasing what Sandewall says about, well, he thinks his grandchildren are intelligent. So if a computer is intelligent, he thinks the computer will have to be similar to his grandchildren. This is in contrast to people who are using the terms AI to mean something a graphics card does with extremely specialized bulk matrix multiplication for a very short period of time on absolutely gigantic electrical and kind of memory and computing resources, which doesn't look at all like what Sandewall's grandchildren were doing. And this is why I'm kind of saying, well, if I have an agent, And my agent is quite simple. It uses Emacs server and Emacs client to send lines of basically extended first-order logic to the agent, and the agent then takes a kind of first-order logic-y action. And I was making the point that this looks more like me computing using of REPL-driven development like EEV, where in EEV, I have basically a log of something I've previously done, and I can tap F8 and execute line after line after line. And I think if I see an agent doing that, I can clearly understand and relate to what the agent is doing. And so I'm not classifying Like, I never do gigabytes and gigabytes and gigabytes of matrix multiplications, so I can't relate to this as an idea of intelligence. Sorry. Welcome to GreenGuest teleporting in. FullSpain is saying, no one truly knows what intelligence is. All right. I kind of wished that this was working, because just before we went live, they said, hey, just have your example working quickly. Then I downloaded my example from my blog, and I'd double escaped some characters so that the escaped characters would show up in my blog. And I caused a lot of rampant chaos. If anyone else has a question. Guest has said, but. So. Great. I guess I could go back and try it. I probably should have jumped in a couple of minutes ago and just said the live stream did cut over, but we're continuing to record this and the whole session will be published along with the video on the website. Oh, well. Sorry about that. I tried that. I just lost a couple of minutes there and failed to give you the smooth warning. Oh, no, no. That's fine. I was just kind of rambling. Listen. Don't download a web page and try and convert it to an org file on the fly and just before you go live somewhere is the kind of moral here. You know, just saying that's pretty graphics, but it's long. She's dropping. See you later. Yeah. Let's, let's, let's all get out of here. Basically. I'm going to go see if I can look at this ether pad one last time and see if there are any questions just to not leave anyone else. Anyone out much to their chagrin possibly. Um, how to connect to LambdaMOO, seems great. Oh, interesting guides, somebody wrote that.
[00:15:52.160] Q: What do you mean by slowly?
What do you mean by slowly? Yeah, so I'm saying taking a simple action every 20 seconds, this still adds up to a lot over time. Question, do you think that it would be, yeah, well, if you've used Slime, and hence you're using Swank, you can just Swank, Eval, and Emacs would be the more trivial way. I felt like I was getting something bonus by using, um, Emacs server. Somebody has a link to Eduardo's blog, which I think has been misspelled. It should be anggtwu with no dot there, dot net, sharp sign EEV. (https://anggtwu.net/#eev) So, Eduardo is the author of EEV mode. I found Eduardo's thing. Oh, this was the question, what is the Leonardo system, which I just answered. What is LambdaMOO? How do you use it? It's a mud, comma, object-oriented. So it's a multi-user dungeon kind of classical video game, still popular, but with extended object-oriented facilities. Companies like Harlequin, which yduJ and Ken Pitman, for example, were at, I think, in the 90s. Instead of modernly, you'd have Slack web apps or something. People used to have these MOOs and things. Okay, the music that's replaced me is evidently quite nice. Yes, get the hints. Thanks for being here. Well, let's continue this diatribe possibly on the Mastodon or something like that. We'll do some kind of... Let me thank you one more time for preparing this talk and for all that you do for the Free Software community and especially for Emacs. particularly appreciate you. Thank you for all you do for the Free Software community and particularly Emacs, Corwin and Bruce. I'm still waiting for a working demo of Dungeon Mode. My joke that I was setting up and never had a chance for was that I was going to say I wanted my agent to be using Dungeon Mode in Emacs. How's that? Okay, well, we'll work on that. That could be a project for the two of us in our copious free time. Definitely. Yeah. Okay. I'll let you go. I'm gonna abandon this stream. All right. I'll end out the recording and thanks to all who participated. Okay. See you later.

Questions or comments? Please e-mail emacsconf-org-private@gnu.org

Back to the talks Previous by track: Emacs and private AI: a great match Next by track: Modern Emacs/Elisp hardware/software accelerated graphics Track: Development