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 生態系統中。