闲聊mcp
用于对远程Smalltalk进行实时编码的MCP服务器
概述
该项目使AI代理能够与实时Smalltalk进行交互 通过模型上下文协议(MCP)访问对象存储器。
建筑
AI Agent (MCP client)
↓ MCP protocol (HTTP/SSE)
Deno Bridge Server (bridge.js)
↓ Tether protocol (binary)
SqueakJS Browser Instance (Caffeine object memory)网桥服务器通过Tailscale漏斗暴露,使得SqueakJS 远程AI代理可以访问。
运作原理
- 代理获取初始对象 -AI代理使用
peer获取对第一个暴露的Smalltalk对象(Tether实例)的引用的工具 - 代理发送消息 -代理人使用
send工具,用于将Smalltalk消息发送到实时映像中的对象,以JSON形式传递参数 - 桥梁翻译 -MCP服务器将JSON参数转换为Tether二进制协议,以传输到Smalltalk
- 现场执行 -Smalltalk映像执行消息并返回Tether编码的结果
- 响应翻译 -MCP服务器将Tether结果转换回JSON,并将对象引用作为整数标签
- 工具调用缓存 -MCP服务器将每个工具调用和响应作为资源缓存,可通过时间戳访问
- 语义积累 -代理通过连续的交互建立对对象记忆的理解
- 源代码访问 -代理可以通过MCP资源读取方法源代码(格式:
file:///source//) - 方法编译 -代理可以使用以下命令编译和安装新方法
compileMethod工具
关键洞察
代理仅使用Smalltalk对象的标签(32位 Tether协议定义的无符号整数)。代理累积 通过上下文窗口了解这些对象的语义知识 探索-发送信息、观察结果和建立心理 实时系统的模型。MCP服务器处理所有Tether编码/解码, 因此代理完全使用JSON。
文件
bridge.js-桥接MCP和Tether协议的Deno服务器tether.js-Tether协议的JavaScript实现tether-encoding.md-Tether消息编码/解码参考指南
示例
评价 3 + 4:
send(
receiver: 1073741827, // SmallInteger 3 (tag: 3 + 1073741824)
selector: "+",
arguments: "[4]" // JSON array containing SmallInteger 4
)
// Returns: {"result": 1073741831} // SmallInteger 7 (tag for 7)代理在远程对象引用时使用JSON作为消息参数 表示为由Tether定义的32位无符号整数(标签) 协议。
本项目工作流程
用户和代理通过不断增长的用例协同工作 复杂性,开发解释代理是什么的Markdown文件 通过与Smalltalk交互来学习Smalltalk。这将提供 为未来的代理提供有关如何使用Smalltalk和启用配对的上下文 与用户一起编程。
