接口介绍
给定方法的全限定名(可选形参类型用于重载消歧),精准返回该方法的源码片段(可选携带 Javadoc 与注解),不带文件其他部分;有重载且未消歧时返回所有候选。
工具名
read_method_source_by_method_name
背景与目标
文件级读取(read_file_by_path)是文件级粒度,LLM Agent 拿到上百行整文件后还要自己定位方法,token 开销大。本工具按"方法"为单位返回源码,是程序分析的最小颗粒上下文。
输入参数
| 参数 |
类型 |
必填 |
说明 |
method_full_name |
string |
是 |
方法全限定名,如 com.example.UserController.getUser |
parameter_types |
string[] |
否 |
形参类型列表用于重载消歧;不填时:有重载则报错并返回所有候选 |
repository_path |
string |
是 |
仓库本地绝对路径 |
include_javadoc |
bool |
否 |
默认 true,是否带方法上方的 Javadoc 注释 |
include_annotations |
bool |
否 |
默认 true,是否带方法上的注解 |
输出结构
{
"method_full_name": "com.example.UserController.getUser",
"method_signature": "getUser(HttpServletRequest, String): ResponseEntity<User>",
"file_path": "src/main/java/com/example/UserController.java",
"start_line": 87,
"end_line": 105,
"containing_class": "com.example.UserController",
"source": "@GetMapping(\"/users/{id}\")\npublic ResponseEntity<User> getUser(HttpServletRequest req, @PathVariable String id) {\n ...\n}",
"javadoc": "/** Get a user by id */"
}
重载未消歧时:
{
"method_full_name": "com.example.UserController.getUser",
"found": false,
"ambiguous": true,
"candidates": [
"getUser(HttpServletRequest, String): ResponseEntity<User>",
"getUser(String): User"
]
}
验收标准
预估工作量
3-4 人日
接口介绍
给定方法的全限定名(可选形参类型用于重载消歧),精准返回该方法的源码片段(可选携带 Javadoc 与注解),不带文件其他部分;有重载且未消歧时返回所有候选。
工具名
read_method_source_by_method_name背景与目标
文件级读取(
read_file_by_path)是文件级粒度,LLM Agent 拿到上百行整文件后还要自己定位方法,token 开销大。本工具按"方法"为单位返回源码,是程序分析的最小颗粒上下文。输入参数
method_full_namecom.example.UserController.getUserparameter_typesrepository_pathinclude_javadocinclude_annotations输出结构
{ "method_full_name": "com.example.UserController.getUser", "method_signature": "getUser(HttpServletRequest, String): ResponseEntity<User>", "file_path": "src/main/java/com/example/UserController.java", "start_line": 87, "end_line": 105, "containing_class": "com.example.UserController", "source": "@GetMapping(\"/users/{id}\")\npublic ResponseEntity<User> getUser(HttpServletRequest req, @PathVariable String id) {\n ...\n}", "javadoc": "/** Get a user by id */" }重载未消歧时:
{ "method_full_name": "com.example.UserController.getUser", "found": false, "ambiguous": true, "candidates": [ "getUser(HttpServletRequest, String): ResponseEntity<User>", "getUser(String): User" ] }验收标准
parameter_types时返回 ambiguous + 候选预估工作量
3-4 人日