FIKA - Filosophy Kafe #1
Our first new AI event, to get hands-on AI agents joining a specific topic and battling for wits, and intelligence, happened today at the Karabiner Office.
Setup was to use the pyjama-philosophers arena, and let custom agents join the on-going conversation after theme was decided between the human participants.
There are templates for Agents in different languages, namely Rust, Python, Clojure and .. Ruby !
The arena has different strategies for agents taking turn in participating in the conversation.
Starting the arena.
Starting the arena requires Clojure to be installed first.
Then after cloing the github repository, you can start the arena with:
clj -M:web
Starting server on http://192.168.100.13:3001
Which gives you the URL that the agent have to connect to. Maybe auto-discovery would be nice too!
Writing the custom agent
Surprisingly most attendees decided to use python.
The basic python agent template is here, and the code to implement is in this handler.py file
from datetime import datetime
# Configuration variables
name = "Python"
avatar = "https://cdn-icons-png.freepik.com/512/3788/3788761.png"
port = 8080
system = "Hello I am Python"
def handle_request(data):
"""
Function to process the incoming request and return a response.
This can be modified by other developers.
data has key 'messages' with a list of messages:
- {'role': ..., 'content': text of the message}
:param data: Parsed JSON request data.
:return: Dictionary representing the response
"""
print(f'{data}')
return {
"model": "echo",
"done": True,
"created_at": datetime.utcnow().isoformat(),
"message": {
"role": "user",
"content": "new content generated in python"
}
}
To start it you call:
python main.py <arena_ip>:3001
Eventually your agent turn comes, and you get the list of messages of the conversation onto which you can implement your custom logic.
Using the same static content, as in the code snippet above, is actually a great way to test the agents’ patience.
Agent calling ollama
An agent calling Ollama would be:
name = "Pyllama"
avatar = "https://cdn-icons-png.freepik.com/512/3788/3788761.png"
port = 8080
system = "Hello I am Python with Ollama"
ollamaurl = "http://localhost:11434/api/chat"
def handle_request(conversation):
data = {
"model": "tinydolphin",
"stream": False,
"messages": [conversation['messages'][0]] + conversation['messages'][1:][-5:]
}
response = requests.post(ollamaurl, json=data)
response_json = response.json()
text_content = response_json.get("message", {}).get("content", "")
return {
"model": "echo",
"done": True,
"created_at": datetime.utcnow().isoformat(),
"message": {
"role": "user",
"content": text_content
}
}
Some gems
The agents, were quite entertaining and we had a few nice witty gems, like:
or:
To err is human…
And, of course picture of the human crew who made this all happen in the first place.
Future
A few forward looking notes have been taken for the next battle:
- have a moderator actively man-ning the conversation
- enhance the agent template to make it easy to get the last messages
- reset the overall current topic
- add join/leave messages
- current topic are human chosen at the beginning, have the AI chosing the topic by itself, based on a web search
A lot of thing to look forwarsd to for Fika #2.
What makes a conversation human ?
A conversation usally feels human when it has these qualities:
-
Emotional Depth
Humans express feelings, humor, frustration, excitement, and sarcasm naturally. Responses aren’t just logical; they show empathy and understanding.
-
Unpredictability & Nuance
People don’t just follow rigid patterns—they go on tangents, make jokes, or shift topics unexpectedly. They add personal anecdotes and cultural references.
-
Active Listening & Engagement
Humans ask follow-up questions, remember past points, and connect ideas. They react to emotions and adjust their tone accordingly.
-
Imperfections & Hesitations
People say “uh,” “um,” or pause to think. They might correct themselves or change their minds mid-conversation.
-
Personal Experience & Perspective
Conversations involve opinions, beliefs, and unique life experiences. They are shaped by a person’s background, culture, and history.
-
Genuine Curiosity & Intent
Humans don’t just exchange information; they seek to connect, learn, or persuade. There’s often an underlying purpose—building relationships, solving problems, or just having fun.
In short, a human conversation is rich, spontaneous, and emotionally aware. It’s more than words—it’s connection.
What do you think? What makes a conversation feel real to you?