工具的描述（提示语），是为了让 llm 更好的理解而设定，相当于提示语。分为三部分：

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



| 描述示例 | 说明 | 
| -------- | -------- | 
| `@ToolMapping(description = "获取用户信息")`     | 加在方法上，是工具的描述     | 
| `@Param(description = "用户ID")`     | 加在方法参数上，是工具参数的描述     | 
| `@Param(description = "用户名")`     | 加在实体的字段上，是实体结构的描述     | 

* 方法参数相关的，为输入架构描述
* 返回结果相关的，为输出架构描述


### 1、示例

```java
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";
    }
}
```



