datasette-agent 0.2a0 发布:智能代理新增用户交互与查询保存功能
datasette-agent 0.2a0 版本引入了工具可向用户提问的功能,以及新的内置保存查询工具,使 Datasette 的 AI 代理更加灵活和用户可控,这些特性得益于新的 LLM 框架。
datasette-agent 0.2a0 版本现已正式发布。本次更新为 Datasette 的 AI 代理带来了两项关键增强:用户交互能力和查询保存功能,极大地提升了代理的灵活性和用户控制力。
首先,工具现在可以在执行过程中向用户提问。开发者在工具函数中声明一个 context 参数后,工具会获得一个 ToolContext 对象。通过调用 await context.ask_user(...),工具可以提出不同类型的问题,包括:是非题(yes/no)、多项选择题(通过 options=[...] 参数指定选项)或自由文本题(设置 free_text=True)。当问题未被回答时,代理的当前回合会挂起,问题会以表单形式显示在聊天界面中,同时持久化到内部数据库。这意味着即使服务器重启,之前挂起的对话也能继续执行。一旦用户回答了问题,工具会从头重新执行,并自动回放之前存储的答案。因此,建议在工具执行任何有副作用的操作之前调用 ask_user(),以确保正确性。
其次,新版本引入了一个内置的 save_query 工具。该工具允许代理将其编写的 SQL 语句保存为 Datasette 存储的查询。保存操作始终需要人类批准——代理会展示完整的 SQL 语句,以及建议的查询名称、所属数据库和可见性设置。只有在用户点击“是”之后,查询才会被实际保存。这一机制确保了用户对代理生成的 SQL 有完全的控制权,避免了自动保存可能带来的风险。
值得一提的是,ask_user() 功能的实现依赖于一个全新的 LLM 框架,这个框架是项目作者昨日借助 Claude Fable 5 构建的。Claude Fable 5 是近期发布的先进语言模型,其强大的代码生成和推理能力使得这一复杂的交互逻辑成为可能。随着 datasette-agent 的持续发展,我们可以期待更多基于 LLM 的创新特性出现在 Datasette 生态系统中。