Solon v3.3.3

chat - 工具的描述(或提示语)

</> markdown

工具的描述(提示语),是为了让 llm 更好的理解而设定,相当于提示语。分为三部分:

  • 工具描述(让 llm 理解工具的功能,作什么用)
  • 输入架构描述(让 llm 理解参数是意思,作什么用)
    • 支持基础类型和数据实体类型,作为参数
  • 输出架构描述(目前是由 mcp 定义的)
    • 支持基础类型和数据实体类型,作为反回类型(不能为空)

1、示例

import org.noear.solon.annotation.Param;
import org.noear.solon.ai.annotation.ToolMapping;
import org.noear.solon.ai.mcp.server.annotation.McpServerEndpoint;

public class UserInfo {
    @Param(description = "用户名")
    private String name;

    @Param(description = "年龄")
    private Integer age;

    @Param(description = "性别。0表示女,1表示男")
    private Integer gender;
}

public class OrderInfo {
    @Param(description = "订单Id")
    private String id;

    @Param(description = "金额")
    private float amount;
}

public class Tools {
    @ToolMapping(description = "获取用户信息")
    public UserInfo getUserInfo(@Param(description = "用户ID") Long userId) {
        return userService.getUser(userId);
    }
    
    @ToolMapping(description = "提交订单信息")
    public String postOrder(@Param(description = "用户ID") Long userId, @Param(description = "订单") OrderInfo order) {
        return "OK";
    }
}

本例中

描述示例说明
@ToolMapping(description = "获取用户信息")加在方法上,是工具的描述
@Param(description = "用户ID")加在方法参数上,是工具参数的描述(即输入架构)
@Param(description = "用户名")加在返回结果的字段上,是工具输出的描述(即输出架构)