Code Agentでのツール呼び出しについて

Koji
Koji Partner, Dataiku DSS Core Designer, Registered Posts: 44 Partner

Code Agent構築の際にツールの設定は以下のように認識しています

@ tool
def add(a: int, b: int) -> int:
"""Adds a and b."""
return a + b @ tool
def multiply(a: int, b: int) -> int:
"""Multiplies a and b."""
return a * b tools = [add, multiply]

このときdataset_lookupのようなAgent toolで設定したツールを呼び出すこと可能でしょうか?

Best Answer

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 199 Dataiker
    edited May 12 Answer ✓

    @Koji 前述のAPIについて、私の環境で少し試してみました。その結果、以下のドキュメントに記載の要領で、CodeエージェントからTool呼び出し可能なことを確認しました。

    https://doc.dataiku.com/dss/latest/generative-ai/agents/tools/using-tools.html#langchain-api

    Toolは以下のような形で取得&実行できましたので、あくまでも参考までですが、コードイメージを記載します。

    import dataiku
    from dataiku.llm.python import BaseLLM
    from dataiku.langchain.dku_llm import DKUChatLLM
    from langchain_core.messages import HumanMessage
    
    tools = []
    #Toolの詳細画面を開いた際に、URL内に表示されるIDを指定
    tool = dataiku.api_client().get_default_project().get_agent_tool("ggLdoAC")
    ltool = tool.as_langchain_structured_tool()
    tools.append(ltool)
    
    class MyLLM(BaseLLM):
        def __init__(self):
            pass
        
        def process(self, query, settings, trace):
            prompt = query["messages"][0]["content"]
            llm = DKUChatLLM(llm_id=f"openai:{OPENAI_CONNECTION_NAME}:gpt-4o-mini")
            llm_with_tools = llm.bind_tools(tools)
            ……
    

    あとは、ツールに適切なパラメータを渡して実行する必要があります。

    ツールの実行方法・パラメータの渡し方については、上記ドキュメント、および以下のドキュメントを参考にしていただければと思います。(Code Agentを作成する際、「Simple tool-calling agent」のスターターコードを選択して、その実装を参考にすることも可能です。)

    https://developer.dataiku.com/latest/tutorials/genai/agents-and-tools/code-agent/index.html#creating-the-tools

Answers

Setup Info
    Tags
      Help me…