共用方式為


程式代碼解釋器 AI 代理程式工具

重要

這項功能處於 公開預覽階段

本文說明如何使用馬賽克 AI 代理程式架構建立 AI 代理程式的程式代碼解釋器工具。 程式代碼解釋器可讓代理程式執行由互動使用者提供的任意程式代碼、從程式代碼基底擷取,或由代理程式撰寫。

若要深入瞭解代理程式工具,請參閱 建立 AI 代理程式工具

內建 Python 執行程式工具

Azure Databricks 提供內建的 Python 執行程式工具,可讓 AI 代理程式執行 Python 程式代碼。 根據預設,Unity Catalog 函式 system.ai.python_exec 可供使用,而且可以像任何其他 Unity Catalog 函式工具一樣使用。

Python 執行程式工具

下列範例會重新建立內建工具,system.ai.python_exec,讓代理程序執行 Python 程式代碼。

在筆記本數據格中執行下列程序代碼。 它使用 %sql 筆記本魔法來建立一個名為 python_exec的 Unity Catalog 函式。

%sql
CREATE OR REPLACE FUNCTION main.default.python_exec (
        code STRING COMMENT "Python code to execute. Ensure that all variables are initialized within the code, and import any necessary standard libraries. The code must print the final result to stdout. Do not attempt to access files or external systems."
    )
    RETURNS STRING
    LANGUAGE PYTHON
    COMMENT "Executes Python code in a stateless sandboxed environment and returns its stdout. The runtime cannot access files or read previous executions' output. All operations must be self-contained, using only standard Python libraries. Calls to other tools are prohibited."
    AS $$
        import sys
        from io import StringIO
        stdout = StringIO()
        stderr = StringIO()
        sys.stdout = stdout
        sys.stderr = stderr
        try:
            exec(code, {})
        except SyntaxError as e: # try escaping characters
            code = code.encode('utf-8').decode('unicode_escape')
            exec(code, {})
        return stdout.getvalue() + stderr.getvalue()
    $$

後續步驟

建立代理程式工具之後,請將此工具新增至 AI 代理程式。 請參閱 將 Unity Catalog 工具新增至代理程式