Show HN: dart_agent_core – 在Flutter应用中运行AI智能体,支持生命周期钩子
dart_agent_core是一个移动优先、本地优先的Dart库,用于构建和评估有状态、使用工具的AI智能体。它支持多LLM提供商(OpenAI、Gemini、Claude等),提供工具使用、流式传输、技能系统、上下文压缩、子智能体委托和智能体评估等功能。适用于Flutter应用,无需Python或Node.js后端。
dart_agent_core是一个专为Flutter应用设计的Dart库,旨在让开发者能够轻松构建和运行具备工具使用能力的AI智能体。该库完全采用Dart编写,实现了完整的智能体循环,包括工具调用、状态持久化、多轮记忆、技能系统、上下文压缩以及智能体评估等功能。它集成了多个主流LLM提供商的客户端,如OpenAI、Google Gemini和Anthropic Claude,并且支持任何兼容OpenAI的API。这意味着开发者无需搭建Python或Node.js后端,即可在Flutter应用中集成AI智能体。
该库的核心特性之一是工具使用。开发者可以将任何Dart函数封装为一个工具,并为其定义JSON Schema参数。智能体能够自动解析LLM返回的函数调用JSON,将参数映射到函数,执行后返回结果。工具支持函数模式和对象模式,并且可以返回包含多模态内容、元数据或停止信号的AgentToolResult。此外,dart_agent_core还支持多模态输入,包括文本、图像、音频和视频。
技能系统是dart_agent_core的另一大亮点。它支持两种技能类型:纯Dart技能和文件系统技能。纯Dart技能是模块化的能力单元,包含系统提示和可选工具,智能体可以根据任务动态激活或停用它们以节省上下文窗口。文件系统技能则从本地目录中的SKILL.md文件加载,并且可选配JavaScript运行时,允许执行JavaScript脚本。开发者还可以注册桥接通道,让JavaScript调用原生功能。
dart_agent_core提供了丰富的智能体生命周期管理能力。通过AgentController,开发者可以监听运行、模型、工具、计划、重试、取消和错误等生命周期事件。智能体钩子(AgentHook)允许在模型输入、流式输出、工具调用等环节进行修改或拦截。此外,还支持子智能体委托,可以注册专门的子智能体来处理特定任务,每个子智能体拥有独立的上下文。
在评估方面,dart_agent_core提供了一个完整的评估套件。开发者可以定义任务、评分器、记录回放等,并计算pass@k和pass^k等指标。这有助于测试和迭代智能体的表现。
平台兼容性方面,dart_agent_core支持所有六个Dart/Flutter平台(Android、iOS、Web、Windows、macOS和Linux),并且与WebAssembly(WASM)兼容。它使用条件导出在编译时处理平台特定问题,确保公共API在原生和Web上一致。
总之,dart_agent_core为Flutter开发者提供了一个强大的工具,使他们能够在移动设备上本地运行AI智能体,同时保持对智能体行为的精细控制。无论你是构建一个简单的天气查询助手还是一个复杂的自动化工作流,这个库都能满足你的需求。