在Google Colab中构建纳米机器人风格的AI代理:工具调用、会话记忆、技能与MCP服务器
本教程指导如何在Google Colab中构建一个轻量级的个人AI代理,灵感来源于纳米机器人的核心架构。从提供者抽象开始,逐步添加工具注册、会话记忆、生命周期钩子、技能以及MCP风格的服务器。通过自己构建每个模块,深入理解消息、工具、记忆和模型响应的协同工作方式。
本教程详细介绍了如何在Google Colab中构建一个轻量级个人AI代理,其设计灵感来源于纳米机器人的核心架构。教程从提供者抽象开始,逐步添加工具注册、会话记忆、生命周期钩子、技能以及一个MCP风格的服务器。最终得到一个不依赖特定提供者的代理循环,可扩展至真实LLM提供商和生产环境。
教程首先设置环境,包括安装必要的依赖(如openai和nest_asyncio)和导入所需模块。接着定义数据类ToolCall、Usage和LLMResponse,以及基类Provider。然后实现OpenAICompatibleProvider,它可与OpenAI及任何兼容网关(如OpenRouter、DeepSeek、Together、vLLM、LM Studio等)配合使用。为了无需API密钥即可运行,还创建了MockProvider,它基于规则模拟LLM行为,能够根据用户输入触发工具调用(如计算器、时间查询、记住事实、运行Python代码等)。
接下来构建工具注册系统。通过@tool装饰器将普通函数转换为Tool对象,自动从类型提示和文档字符串中提取JSON模式。例如,calculator函数接受表达式字符串并返回计算结果。工具注册后,代理可在循环中调用它们。会话记忆通过session_memory装饰器管理,可以记住用户提供的事实(如名字、爱好),并在后续对话中回忆。生命周期钩子(before_tool和after_tool)允许在工具执行前后插入自定义逻辑,例如记录日志或验证参数。
然后实现MCP(Model Context Protocol)风格的服务器。基于asyncio构建JSON-RPC接口,使工具可以通过网络远程调用。服务器支持注册工具并处理请求,类似于nanobot的MCP服务。最后,将所有组件组装成完整的代理循环:代理接收用户消息,通过提供者生成响应,可能触发工具调用,处理工具结果,并持续对话直到结束。演示用例包括数学计算、时间查询、Python代码执行和事实记忆。
整个教程强调无需外部框架,每个构建块都从零创建,使读者清晰理解消息、工具、记忆和模型响应如何协同工作。代码可在Colab中完整运行,适合学习和实验。通过替换MockProvider为真实提供者,可轻松将代理部署到生产环境。