Kingdee MCP Server
Kingdee MCP Server lets AI clients query and operate Kingdee Cloud Star ERP through natural-language tool calls, with optional SQL Server schema introspection and usage reporting.
Query ERP data across purchase, sales, inventory, production, costs, fixed assets, quality, workflow, audit logs, and finance-related records.
Create/update bills and run lifecycle actions: save, submit, audit, unaudit, delete, push/downstream, create-and-audit, and push-and-audit.
Query bill lists and details with filters, pagination, field selection, and summary/full views; generic querying supports arbitrary
form_idvalues.Explore metadata: search forms, get field definitions/business rules/save templates, and discover SQL Server tables, columns, and table structures.
Map Kingdee
form_idvalues to candidate database tables and inspect database schema without reading business data.Manage workflow/approvals: query pending approvals, approval status, approval flow records, and approve/reject actions.
Inspect and manage master/admin data: materials, customers/suppliers, users, roles, permissions, coding rules, number rules, and system configuration.
Work with production: production orders, material picking, stock-in, MRP results, production plans, production reports, and production push operations.
Query and adjust cost data: material costs, cost calculations, cost centers/items, standard costs, cost adjustments, cost trends, and finished-product/material cost usage.
Query and save fixed assets, asset cards, depreciation, transfers, and scrap records.
Query purchasing and sales documents including purchase requisitions, purchase orders, purchase progress, inquiries, supplier quotes, sales orders, and sales quotations.
Query inventory and warehouse operations including stock bills, inventory balances, transfer applications, direct transfers, pending transfer details, and miscellaneous movement details.
Query audit/operation/change logs, data backup records, and usage statistics/reports for operational and compliance visibility.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kingdee MCP Server查询本月已审核的采购订单"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Kingdee MCP Server —— 让 AI 直接操作金蝶云星空 ERP
⚠️ 本项目为第三方开源,非金蝶官方出品,与金蝶软件(Kingdee)无任何隶属或授权关系。
Kingdee MCP Server 是金蝶云星空(Kingdee Cloud Star)ERP 的 MCP(Model Context Protocol) 服务端,让 Claude、Cursor、Windsurf、Cline 等 AI 助手能够通过自然语言直接操作金蝶 ERP 系统。
官方网站:https://wahailong.github.io/KingdeeMCP/
为什么需要金蝶 MCP?
传统 ERP 操作繁琐,需要在多个界面间切换。有了 金蝶 MCP Server,你可以:
直接对 AI 说:"查询本月已审核的采购订单"
直接对 AI 说:"帮我新建一张销售订单"
直接对 AI 说:"审核这几张入库单"
在微信、WhatsApp、Telegram 中通过 OpenClaw 操作金蝶
AI 会自动调用金蝶 API 完成操作,无需手动登录 ERP 界面。
Related MCP server: >>Kingdee MCP Server
对实施与开发的价值
实施阶段
快速验证配置:用自然语言直接查数据,无需登录 ERP 界面逐层点菜单
数据核查:批量查询单据状态、库存数量,快速定位问题
客户演示:现场说"查一下你们的采购订单",AI 实时返回结果,演示效果直观
日常使用
业务人员自助查询,减少依赖实施人员的频率
批量提交、审核单据,替代重复的手工操作
通过微信 / WhatsApp 直接操作金蝶,无需打开 ERP 客户端
开发阶段
用
kingdee_list_forms、kingdee_get_fields快速探索表单结构,替代翻文档自然语言调试接口,比手写 API 请求效率更高
可作为内部工具基础进行二次开发,快速扩展自定义工具
支持的 AI 客户端
客户端 | 支持方式 |
原生 MCP | |
原生 MCP | |
原生 MCP | |
原生 MCP | |
原生 MCP | |
原生 MCP | |
微信/WhatsApp/Telegram 中使用;将本页地址发给 OpenClaw,它会自动完成安装并引导填写金蝶配置 | |
其他 MCP 兼容客户端 | 原生 MCP |
功能特性
101 个工具:覆盖生产、成本、资产、审计、采购、销售、库存、单据附件、财务、委外加工、财务报表等 17 大业务域
元数据动态查询:
get_bill_template/validate_bill/refresh_metadata,元数据本地缓存4 个 SQL Server 探查工具:搜索表、搜索字段、查看表结构、金蝶元数据候选发现
自然语言操作:用中文直接描述需求,AI 自动转换为 API 调用
异步高性能:基于 async/await,支持并发请求
自动重试:Session 过期自动重登,连接失败自动重试
安全认证:采用金蝶官方 WebAPI 认证,账号密码(ValidateUser)登录,兼容公有云和私有云,无第三方应用授权
类型安全:基于 Pydantic 数据验证,参数自动补全
易于扩展:基于 FastMCP 框架,轻松添加自定义工具
使用示例:提供 9 个常见业务场景示例,覆盖查询、新建、审核、下推等操作
快速安装
pip install kingdee-mcp或使用 uvx 直接运行(推荐,无需手动安装):
uvx kingdee-mcp远程部署(HTTP / SSE 模式)
默认以 stdio 模式运行(本地 MCP 客户端通过子进程调用)。若要把服务部署到服务器、或用网关/托管平台(如 Smithery)远程调用、免客户端安装,可改用 HTTP 类传输:
# SSE 模式(兼容性好,旧客户端首选)
uvx kingdee-mcp --transport sse --host 0.0.0.0 --port 8000
# Streamable HTTP 模式(MCP 新版推荐)
uvx kingdee-mcp --transport streamable-http --host 0.0.0.0 --port 8000SSE 端点:
http://<host>:<port>/sseStreamable HTTP 端点:
http://<host>:<port>/mcp
远程模式下仍需金蝶账号密码(通过
KINGDEE_*环境变量注入)。HTTP 只是传输通道,并不替代金蝶认证——客户端连上来后,工具调用照样要走金蝶 ValidateUser 登录。
也可用环境变量代替命令行参数:KINGDEE_MCP_TRANSPORT(stdio/sse/streamable-http)、KINGDEE_MCP_HOST、KINGDEE_MCP_PORT。
Docker 部署
不想在服务器上折腾 Python 环境的,直接用容器。
方式一:拉现成镜像(最快)
docker run --rm -p 8000:8000 --env-file .env ghcr.io/wahailong/kingdeemcp:latest镜像随每次发版自动构建推送,latest 跟最新 tag 走,也可以锁定具体版本号如 :0.2.2。
方式二:docker compose(推荐长期运行)
cp .env.example .env # 填 4 个 KINGDEE_* 变量
docker compose up -d
docker compose logs -f方式三:本地自己构建
docker build -t kingdee-mcp .
# 国内网络慢可换 pip 源:
docker build --build-arg PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ -t kingdee-mcp .起来之后 MCP 客户端连 http://<宿主机IP>:8000/mcp(Streamable HTTP)。
几个容易踩的点:
容器默认以
streamable-http模式监听0.0.0.0:8000。别改回 127.0.0.1 —— 那样只有容器内部能连,宿主机映射了端口也访问不到。想让容器当本地 MCP 客户端的子进程用(stdio 模式):
docker run -i --rm --env-file .env -e KINGDEE_MCP_TRANSPORT=stdio ghcr.io/wahailong/kingdeemcp:latest配置对不对,先自检一把(不起服务,只跑一次金蝶登录):
docker run --rm --env-file .env ghcr.io/wahailong/kingdeemcp:latest --check容器里跑的是金蝶 API 那部分。SQL Server 直连探查工具还需要额外装微软 ODBC 驱动(
msodbcsql18),镜像里只预装了unixodbc基础库。
配置教程
第一步:金蝶云星空后台授权
准备一个金蝶云星空账号(建议专用集成账号,不要用 Administrator)
本服务采用**账号密码(ValidateUser)**登录,无需创建第三方应用、也无需 AppID / AppSecret
为该账号分配所需模块的操作权限
第二步:配置 MCP 客户端
在你的 MCP 客户端配置文件中添加以下内容:
{
"mcpServers": {
"kingdee": {
"command": "uvx",
"args": ["kingdee-mcp"],
"env": {
"KINGDEE_SERVER_URL": "http://your-server/k3cloud/",
"KINGDEE_ACCT_ID": "你的账套ID",
"KINGDEE_USERNAME": "金蝶账号",
"KINGDEE_PASSWORD": "金蝶账号密码"
}
}
}
}配置文件位置:
客户端 | 配置文件路径 |
Claude Desktop (Windows) |
|
Claude Desktop (macOS) |
|
Cursor | Settings → MCP → Add Server |
Claude Code CLI |
|
OpenClaw | 使用 |
第三步:重启客户端
配置完成后重启你的 MCP 客户端即可开始使用。
OpenClaw 用户:使用
openclaw mcp set配置后会自动热加载,无需重启网关。
环境变量说明
变量 | 说明 | 示例 |
| 金蝶服务器地址(需包含 /k3cloud/) |
|
| 账套ID |
|
| 金蝶账号 |
|
| 金蝶账号密码(ValidateUser 登录,必填) |
|
| 附件传输读写等待时间(秒,可选,默认 120;连接超时仍为 30) |
|
| SQL Server 主机(可选,用于数据库探查) |
|
| SQL Server 端口(默认 1433) |
|
| 数据库名 |
|
| SQL Server 用户(建议只读账号) |
|
| SQL Server 密码 |
|
⚠️ 从 0.1.0 升级的破坏性变更(重要)
0.2.0 起,登录方式从「第三方应用授权(AppID + AppSecret)」改为「账号密码(ValidateUser)」,旧版的 KINGDEE_APP_ID / KINGDEE_APP_SEC 环境变量已失效。
如果你之前的 MCP 客户端配置里用的是 AppID / AppSecret,升级后会出现登录失败。请按以下方式迁移:
在金蝶云星空创建一个专用集成账号(不要用 Administrator);
把 MCP 配置里的环境变量改为:删除
KINGDEE_APP_ID、KINGDEE_APP_SEC,新增KINGDEE_PASSWORD= 该集成账号的密码;重启 MCP 客户端。
之所以改用账号密码,是因为账号密码(ValidateUser) 是以真实用户身份执行 WebAPI、会携带该用户自身的业务权限(含 WebApi 数据权限控制);而第三方应用授权(LoginByAppSecret) 以应用身份登录、不携带真实用户权限,报表等依赖数据权限的查询会受应用授权范围限制,无法按用户权限正常执行。
可用工具列表
共 101 个工具,按业务域分组(每组列出代表性工具,完整清单见 src/kingdee_mcp/server.py):
业务域 | 数量 | 代表性工具 |
通用单据 | 15 |
|
生产制造 | 12 |
|
成本核算 | 12 |
|
固定资产 | 6 |
|
库存 | 9 |
|
委外加工 | 1 |
|
审计合规 | 6 |
|
采购 | 5 |
|
销售 | 4 |
|
工作流/审批 | 4 |
|
基础资料/权限 | 5 |
|
元数据/探查 | 8 |
|
系统/其他 | 8 |
|
统计 | 2 |
|
财务报表 | 1 |
|
单据附件 | 2 |
|
财务收款 | 1 |
|
元数据探查含 4 个 SQL Server 工具(
kingdee_discover_tables/kingdee_discover_columns/kingdee_describe_table/kingdee_discover_metadata_candidates),需配置MCP_SQLSERVER_*环境变量。
元数据查询
工具名称 | 功能说明 |
| 搜索可用表单(不知道 form_id 时使用) |
| 获取表单字段列表 |
数据查询(只读操作)
工具名称 | 功能说明 |
| 通用单据查询,支持任意 form_id |
| 查看单据完整详情 |
| 查询采购订单 |
| 查询销售订单 |
| 查询销售报价单(SAL_Quotation) |
| 查询出入库单据 |
| 查询即时库存 |
| 查询收款单(AR_Receivable):实收金额、结算方式(现金/转账/承兑汇票)、核销金额,营收/回款/应收余额核心数据源 |
| 查询委外加工订单(SUB_SubReqOrder):在制量、逾期分析、回货交期预测,WIP 数据核心来源 |
| 查询物料档案 |
| 查询客户/供应商档案 |
| 财务报表查询(GetSysReportData 专用端点):科目余额表 |
单据操作(写操作)
工具名称 | 功能说明 |
| 新建或修改单据 |
| 提交单据 |
| 审核单据 |
| 反审核单据 |
| 删除单据 |
单据附件(WebAPI V6.0)
工具名称 | 功能说明 |
| 上传 Base64 内容并绑定已存在的单据头或分录;单块最多 4 MiB,支持 FileId 续传 |
| 按 FileId 下载一块附件,返回 Base64、下一块位置和完成标志 |
附件工具不读写 MCP 服务器上的本地文件。上传完成不会自动提交或审核单据。 使用方式、字段映射和失败恢复见 单据附件示例。
使用示例
配置完成后,在 Claude 或其他 AI 客户端中直接用自然语言操作:
# 查询类
查询最近 20 条已审核的采购订单
查一下物料编码 MAT001 的即时库存
查询客户编码 C001 的所有销售订单
显示本月所有未提交的销售订单
# 操作类
帮我新建一张采购订单,供应商 S001,物料 MAT001,数量 100,单价 10.5
审核这几张采购入库单:12345, 12346, 12347
反审核销售订单 SO2024001SQL Server 探查工具(可选)
配置 MCP_SQLSERVER_* 环境变量后可用,帮助理解金蝶数据库结构:
工具名称 | 功能说明 |
| 按关键字搜索数据库表名 |
| 按关键字搜索字段名(含所在表) |
| 查看表完整结构(字段、类型、主键、外键) |
| 根据 form_id 发现对应的数据库表名 |
典型用法:先问 AI "采购订单在数据库里对应哪张表",再用 kingdee_describe_table 看字段结构。
支持的单据类型(form_id)
form_id | 说明 |
| 采购订单 |
| 销售订单 |
| 采购入库单 |
| 销售出库单 |
| 其他出库单 |
| 其他入库单 |
| 直接调拨单 |
| 物料档案 |
| 客户档案 |
| 供应商档案 |
| 即时库存 |
常见问题
Q: 提示认证失败怎么办? 检查金蝶账号与密码(KINGDEE_PASSWORD)是否正确,该账号是否有对应模块的操作权限。
Q: 连接超时怎么解决?
检查 KINGDEE_SERVER_URL 是否正确(需包含 /k3cloud/ 后缀),确保服务器可访问。
Q: 支持金蝶云星空公有云吗? 支持。公有云和私有云使用相同的账号密码(ValidateUser)认证方式,配置方式完全一致。
Q: 用 uvx kingdee-mcp 启动时报 No module named 'mcp.server.fastmcp'?
这是 uvx 的临时环境偶尔没把依赖(mcp)装全导致的,不是包本身的问题(PyPI 元数据已正确声明 mcp[cli]>=1.0.0)。两种解决方式:
清理 uv 缓存后重试:
uv cache clean,再重新启动uvx kingdee-mcp;或改用 pip 安装 + 模块方式启动(更稳,推荐用于生产):
pip install kingdee-mcpMCP 客户端配置改为:
{ "mcpServers": { "kingdee": { "command": "python", "args": ["-m", "kingdee_mcp.server"], "env": { "KINGDEE_SERVER_URL": "...", "KINGDEE_ACCT_ID": "...", "KINGDEE_USERNAME": "...", "KINGDEE_PASSWORD": "..." } } } }
配合 mcp-sqlserver-introspect 使用
kingdee-mcp 提供两层能力:
第一层:ERP 操作层(kingdee-mcp 内置) 直接操作金蝶单据:查询、新建、提交、审核、下推等。
第二层:数据库理解层(mcp-sqlserver-introspect) 探查 SQL Server 表结构:找表、找字段、理解关联关系。
典型使用场景:
# 场景一:接口映射
问:"帮我找采购订单相关的表"
→ mcp-sqlserver-introspect 返回 T_PUR_PurchaseOrder 等表
→ 确认 Kingdee API 字段和数据库字段的对应关系
# 场景二:字段溯源
问:"帮我查 FTotalAmount 这个字段在哪些表里"
→ mcp-sqlserver-introspect 返回包含该字段的表列表
# 场景三:数据核查
先用 mcp-sqlserver-introspect 探索表结构
再用 kingdee-mcp 操作 ERP 数据
两者配合,AI 既能理解数据库,又能操作 ERPmcp-sqlserver-introspect 项目地址:https://gitee.com/lzhrick123/mcp-sqlserver-introspect1
kingdee-mcp 已内置 SQL Server 探查工具(配置
MCP_SQLSERVER_*环境变量即可使用),无需额外安装 mcp-sqlserver-introspect。
Q: 如何添加自定义工具?
基于 FastMCP 框架,在 server.py 中添加 @mcp.tool() 装饰器方法即可扩展。
相关链接
贡献者致谢
感谢为本项目贡献代码的开发者:
贡献者 | 贡献内容 |
@chncaesar (Jiachuan Zhu) |
|
欢迎提交 Issue 和 Pull Request。新增单据查询工具建议附带 FORM_CATALOG 条目、常用过滤示例与 mock 测试。
联系方式
QQ:1724349716
License
MIT © WaHaiLong
Available Tools
101 toolskingdee_audit_billsA
审核单据(待审核 → 已审核)。
返回结构化结果:success=true 时表示单据已生效,next_action=null。
Returns: str: JSON,含 success / bill_ids 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-destructive, non-idempotent operation. The description adds context by specifying the state change and return structure (success=true, next_action=null). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences and a returns line. It is front-loaded with the action and result, with no superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (auditing bills) and the presence of an output schema, the description is mostly complete. However, it could mention batch processing (multiple bill_ids) and any error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not describe the parameters. The input schema provides minimal descriptions in Chinese, but with schema description coverage at 0%, the tool description fails to add any meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (audit) and resource (bills), with a status transition (待审核 → 已审核). It distinguishes from sibling audit tools like kingdee_audit_production_orders and kingdee_unaudit_bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for auditing bills but does not explicitly state when to use this tool versus alternatives like kingdee_submit_bills or kingdee_create_and_audit. No when-not-to-use or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_audit_production_ordersB
审核生产订单(PRD_MO)。
Returns: str: JSON,含 success / bill_ids
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-readonly, non-destructive, non-idempotent. Description adds return format but no behavioral details like required state or side effects. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, one line for action and one for return. Front-loaded with action. Could add context without much verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimally complete for a simple audit tool. Lacks explanation of prerequisites, error handling, or meaning of success. Output schema exists but not shown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for form_id and bill_ids. The tool description adds no further meaning. Schema descriptions are sufficient but could be more detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '审核' (audit) and the resource '生产订单(PRD_MO)'. It distinguishes from siblings like kingdee_submit_production_orders and kingdee_audit_bills by specifying the exact resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like kingdee_audit_bills or kingdee_submit_production_orders. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_cancel_billsA
撤销单据或基础资料(草稿/审批中状态回退,action=CancelAssign)。
FormId 参数化通用工具(非某单专用,理由:撤销是标准动作应走通用工具防重复), 适用于单据 + 基础资料(如 SAL_SaleOrder / PUR_Requisition / BD_Customer / BD_Material 等)。
action 依据:范探源 2026-08-07 三重证据查证(元数据 OperationNumber + OperationNumberConst.cs 反编译 + 官方论坛/第三方实测),撤销 = CancelAssign (旧文档误作 Cancel,勿引用)。
端点:默认走独立 CancelAssign 端点(无需 opNumber,QA 严过关 2026-08-07 真机验证 B→D 成功),data={"Ids":"1,2,3"} 或 {"Numbers":[...]},比走 ExecuteOperation 更简单直接。
传参:bill_ids(FID 列表,优先)或 bill_nos(单据编号列表),至少一个。
二开单据自定义撤销动作时,可显式传 operation 覆盖默认 CancelAssign(此时走 ExecuteOperation + 顶层 opNumber)。
Returns: str: JSON,含 success / fid / ids / action / endpoint 字段(注意是 fid/ids 而非 id)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: names the actual endpoint used (standalone CancelAssign, no opNumber), the fallback path (ExecuteOperation + top-level opNumber when operation is overridden), and the payload shape ({"Ids":"1,2,3"}). Annotations already cover safety profile (destructiveHint=false, idempotentHint=false), and nothing in the text contradicts them, though batch partial-failure behavior is unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and parameters are front-loaded, but a large share of the text is provenance meta-commentary ('范探源 2026-08-07 三重证据查证', '反编译', 'QA 严过关…真机验证 B→D 成功') that does not help an agent decide or invoke. The 'old docs said Cancel, don't cite it' note addresses a document the agent does not have.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be described, and the tool's core invocation contract (form scope, id/number targeting, endpoint, override) is covered. Missing pieces are permission requirements, multi-bill partial-success semantics, and any note on irreversibility — relevant for a state-rollback mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Outer schema coverage is effectively 0% (a single opaque 'params' wrapper), so the description must compensate — and it does: bill_ids as FID list with priority, bill_nos as FBillNo fallback, the at-least-one rule, and when operation must be supplied explicitly. It adds real semantics beyond the nested schema, though it does not elaborate on form_id beyond examples already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening states a specific verb and resource ('撤销单据或基础资料'), scopes the operation to draft/in-approval state rollback, and pins the concrete action (CancelAssign) and generic FormId scope. It is distinguishable from most siblings conceptually, though the description never names void/close/delete explicitly as different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a state precondition ('草稿/审批中状态回退') and a parameter rule (bill_ids or bill_nos, at least one), plus an override path for 二开 forms. But with siblings kingdee_void_bills, kingdee_close_bill, kingdee_delete_bills, kingdee_forbid_bills all being state-changing actions on the same FormId, the description never says when to pick cancel versus those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_close_billA
整单关闭单据(已审核单据业务关闭,opNumber 随表单而异)。
FormId 参数化通用工具(非某单专用,理由:整单关闭是标准动作应走通用工具防重复), 适用于单据(销售订单、采购申请单、发货通知单等)。
action 依据:范探源 2026-08-07 三重证据查证 + QA 严过关真机实测——整单关闭 opNumber 因表单而异(如 SAL_SaleOrder=YLBillClose、PUR_Requisition=BillClose、 PUR_PurchaseOrder=BillClose、SAL_DELIVERYNOTICE=BillClose),无法静态固定,需真机确认。
端点/格式:ExecuteOperation,opNumber 放顶层,data 只放业务参数。
解析优先级:显式 operation 参数 > 该 form_id 元数据 Operations 按中文名 「整单关闭/关闭单据」匹配 OperationNumber(复用元数据缓存 _query_metadata); 匹配不到返回明确中文错误(提示显式传 operation)。
传参:bill_ids(FID 列表,优先)或 bill_nos(单据编号列表),至少一个。
Returns: str: JSON,含 success / fid / ids / action / action_source / endpoint 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the endpoint (ExecuteOperation), that opNumber goes at the top level while data holds only business params, the resolution precedence for the operation code, and the explicit Chinese error returned when metadata matching fails. It omits whether repeated close calls are idempotent or what permissions are needed, but the resolution-failure behavior is genuinely useful for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first line is well front-loaded, but the body carries provenance noise ('范探源 2026-08-07 三重证据查证 + QA 严过关真机实测') and a defensive rationale for why it is a generic tool, neither of which helps an agent invoke it. Roughly a third of the text could be cut without information loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool the description covers action resolution, parameter precedence, error behavior, and target form applicability. An output schema exists, so return values need not be explained further; the remaining gap is idempotency and preconditions (must be audited and not already closed) which are only obliquely implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the flattened schema coverage signal reads 0% (the real parameters are nested under params/$ref), the description adds real semantic content: form-specific opNumber examples per form_id, the 'explicit operation > metadata Chinese-name matching' precedence, and the bill_ids-over-bill_nos priority rule. This meaningfully compensates for the nested schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource in the first clause — '整单关闭单据(已审核单据业务关闭)' — and scopes it to audited bills across named form types (销售订单、采购申请单、发货通知单). It never explicitly names kingdee_unclose_bill as the reverse operation, so sibling differentiation is implied by the 反关闭 mention rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the admissibility condition ('已审核单据', 'bill_ids 或 bill_nos 至少一个') and notes the tool is generic across form types, but gives no explicit when-not guidance and does not route the agent to kingdee_unclose_bill, kingdee_cancel_bills, or kingdee_void_bills. Usage is inferable rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_create_and_auditA
一次性走完 Save → Submit → Audit 三步,避免 AI 漏掉中间步骤。
任意一步失败即停止(不自动重试),返回 halted_at 和 recovery_hint 告诉 AI 从哪里手动接手。失败日志按整体 op="create_and_audit" 记录一次(不会三倍膨胀)。
适用场景:明确要"一条龙"创建并使单据生效,没有中间审批/校验需求。 需要中间步骤校验时,请改用手工链路 kingdee_save_bill → kingdee_submit_bills → kingdee_audit_bills。
Returns: str: JSON。成功:success=true、halted_at=null、steps 三条均 success。 失败:success=false、halted_at 指出卡点、recovery_hint 给出下一步建议。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: it stops on first failure without auto-retry, returns halted_at and recovery_hint, and logs a single entry (op='create_and_audit'). It also mentions that any step failure gives a recovery hint. Annotations already mark destructiveHint=false and readOnlyHint=false, and the description adds context on failure handling and logging compression, but does not address idempotency (idempotentHint=false) or clarify if the tool always creates vs. updates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. The first sentence immediately communicates the core functionality. It uses bullet points for failure behavior and clearly separates the return format. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (three-step workflow), the description fully covers the workflow, failure modes, recovery hints, logging behavior, and return format. The input schema provides parameter details, and the description explains the return JSON structure. No gaps remain for an AI to successfully invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add any parameter semantics beyond what the input schema already provides. The schema itself includes descriptions for form_id, model, need_update_fields, and is_delete_entry. Since schema description coverage from the description text is 0%, but the schema already sufficiently describes parameters, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs three sequential steps (Save, Submit, Audit) in one call, preventing the AI from missing intermediate steps. It distinguishes itself from the manual chain of sibling tools kingdee_save_bill, kingdee_submit_bills, kingdee_audit_bills by offering a combined, error-reduced path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly defines when to use this tool ('明确要一条龙创建并使单据生效,没有中间审批/校验需求') and when not to, providing an alternative manual chain. This gives clear guidance for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_create_lx_billingA
二开收款单(TRNV_Receipt)/付款单(TRNV_PaymentSlip) 一站式创建:push → save 补字段 → submit → audit。
背景:金蝶 WebAPI push 接口对二开收/付款单 不会携带业务字段(金额、物料、SONo 等全为空/0), 必须在 push 后用 save 把字段补上才能进入审核。本工具把这四步合并,专为账套初始化导在途收/付款数据设计。
工作流:
push: 源单(SAL_SaleOrder/PUR_PurchaseOrder) → 草稿目标单(保留 _LK 上下游关联)
save: 把 amount / material / qty / so_no 等业务字段写入草稿(is_delete_entry=false 不破坏 _LK)
submit + audit(auto_audit=True 时)
任一步失败立即停止,返回 halted_at 和 recovery_hint 指引手工接手。
Returns: str: JSON。含 steps、target_bill_no、target_fid、halted_at / recovery_hint。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, idempotent=false, openWorld=false, so the safety profile is covered; the description adds real value on top by disclosing the four-step pipeline, the non-obvious constraint that WebAPI push drops business fields for these bill types, the is_delete_entry=false trick that preserves _LK linkage, and the fail-fast contract (halt + halted_at + recovery_hint). It does not spell out permission requirements or that repeated calls create duplicate bills despite idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line summary, then background, then a numbered workflow, then the return contract — each block earns its place and the failure behavior is not buried. No filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 4-step mutation an agent has what it needs: preconditions (source bill type per kind), the pipeline stages, partial-failure semantics, and a return contract that overlaps the existing output schema rather than replacing it. The remaining gap is the wrapper 'params' envelope and any auth/rule prerequisites (enable_default_rule / rule_id implications).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description enumerates several business fields it will write (amount / material / qty / so_no) and ties them to the save step, which is useful orientation. However the top-level schema exposes a single undocumented 'params' wrapper (0% coverage), and the description never explains that all inputs are nested under 'params' or how kind selects which optional fields apply — the agent must read the nested $defs to learn the receipt-vs-payment field split.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line names the exact resources (TRNV_Receipt / TRNV_PaymentSlip) and the exact composite operation (push → save → submit → audit), which is far more specific than a generic 'create bill'. The background section explains why this exists versus plain push, but it never names the sibling alternatives (kingdee_push_bill, kingdee_push_and_audit, kingdee_create_and_audit) it overlaps with, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when this is the right tool: 二开收/付款单 destined for 账套初始化 / 在途收付款数据, where a bare push would leave 金额/物料/SONo empty. The auto_audit=False case is explicitly framed as the '导入后人工核对' scenario. Missing are explicit exclusions or a pointer to the generic push/create-and-audit tools for non-二开 bill types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_delete_billsADestructive
删除单据(仅草稿状态可删除,已提交/已审核的单据需先反审核)。
返回结构化结果:success=true 时表示删除成功。
Returns: str: JSON,含 success / bill_ids 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the critical behavioral trait: only draft status can be deleted; other statuses require prior unaudit. This adds value beyond the destructiveHint annotation by explaining the state dependency. The return format is also described, but permissions or error handling are not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 4 lines, front-loading the key usage condition. The return description is slightly redundant but does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the state dependency and output schema existence, the description covers the main behavior and return format but omits details on partial success, error handling, or prerequisites beyond status. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the required parameters (form_id and bill_ids), and schema coverage is 0%. The schema itself has descriptions, but the tool description adds no parameter semantics, leaving the agent to rely solely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes bills, specifying the resource (bills) and action (delete). It distinguishes from sibling tools like audit or submit by adding the condition that only draft documents can be deleted directly, while submitted/approved ones need unaudit first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when this tool can be used (only for draft documents) and implies the alternative (unaudit) for non-draft documents. However, it does not name the specific sibling tool (kingdee_unaudit_bills), leaving the agent to infer the prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_describe_tableARead-onlyIdempotent
查看指定表的完整结构(列名、类型、可空、默认值)。
适用场景:
知道表名,想了解完整字段列表
写 SQL 或做数据建模前,查看表结构
确认 Kingdee API 返回的字段在数据库里的实际类型
已知金蝶常用表名前缀:
t_PUR_:采购相关(t_PUR_PurchaseOrder 采购订单)
t_SAL_:销售相关(t_SAL_SaleOrder 销售订单)
t_STK_:库存相关(t_STK_InStock 入库单)
t_BD_:基础资料(t_BD_Material 物料、t_BD_Supplier 供应商)
Returns: str: 表结构详情
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds that it returns a table structure string but does not disclose any additional behavioral traits such as potential performance impacts or authentication requirements. With annotations covering safety, the description adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear summary, usage scenarios, and useful common prefixes. It is concise for the amount of information conveyed. Slightly verbose due to the prefix list, but that is valuable context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter, annotations cover safety, and the description provides usage guidance and additional context on table naming conventions. The return type is mentioned but without an output schema, it's slightly incomplete. Overall adequate for a simple read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a description for the single parameter 'table_name', including an example. The tool description does not add further semantic detail about the parameter. With schema description coverage at 0% (likely meaning the tool description doesn't cover parameters), the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: viewing a table's complete structure including column names, types, nullability, and defaults. It explicitly distinguishes this from sibling tools like kingdee_discover_tables (which lists tables) and kingdee_get_fields (which gets fields differently), though not by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific usage scenarios: when you know the table name, before writing SQL or data modeling, and to confirm field types. It also gives common table prefixes for context. However, it does not explicitly mention when not to use this tool or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_discover_columnsARead-onlyIdempotent
按关键字搜索 SQL Server 中的列名(仅查系统目录,不读业务数据)。
适用场景:
想找一个"供应商编码"字段在哪些表里
接口映射时,确认某个字段在数据库里的实际名称
快速验证 Kingdee API 字段和数据库字段的对应关系
Returns: str: 列名搜索结果,含表名、列名、数据类型、是否可空
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds valuable context: only reads system catalog, no business data, and specifies return structure (table name, column name, data type, nullable). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one-line summary followed by bullet-point use cases. No redundancy, front-loaded with key information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool, the description covers purpose, usage, behavior, and return format. With annotations providing safety guarantees, it is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides detailed descriptions for both parameters (pattern and limit). The description adds no new parameter info but reinforces their purpose through use cases. Given schema coverage, a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches SQL Server column names by keyword, explicitly limiting to system catalog only. It distinguishes from sibling `kingdee_discover_tables` which likely searches tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use cases (finding a field, confirming column names, verifying mappings) that illustrate when to use. Could explicitly mention alternative tools for table search, but the guidelines are practical and clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_discover_metadata_candidatesARead-onlyIdempotent
发现金蝶数据库中与指定 form_id 或 form_id 前缀对应的表。
这是面向金蝶/K3 场景的辅助工具:根据 form_id 推测对应的数据库表名。
form_id → 表名对应规律:
PUR_PurchaseOrder → t_PUR_PurchaseOrder(采购订单)
SAL_SaleOrder → t_SAL_SaleOrder(销售订单)
STK_InStock → t_STK_InStock(入库单)
BD_Material → t_BD_Material(物料)
BD_Supplier → t_BD_Supplier(供应商)
BD_Customer → t_BD_Customer(客户)
适用场景:
想知道某个 form_id 对应数据库里哪张表
想探索某类单据的所有关联表(如采购全流程:订单→收料→入库)
理解金蝶 form_id 和数据库表名的映射关系
Returns: str: form_id 与表名的候选映射列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds context about being a helper tool for Kingdee/K3, providing mapping examples and return type. No contradictions (description states discovery, not mutation). Could disclose case sensitivity or limitation, but overall good.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with purpose, examples, scenarios, and return type. Front-loaded with main action. Could be slightly shorter by merging redundant parts, but clarity benefits from examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of form_id-to-table mapping, the description is thorough: explains mapping logic, provides common examples, and lists use cases. Output schema exists, so return values need no further explanation. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover both parameters. Description adds value by providing valid form_id examples and clarifying default behavior (empty returns all). Reinforces schema info. For limit, no extra detail, but schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose: discovering database tables corresponding to a form_id or prefix. It provides specific examples and distinguishes from siblings by focusing on form_id-to-table mapping, unlike other discovery tools like kingdee_discover_tables or kingdee_discover_columns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists applicable scenarios (knowing which table corresponds to a form_id, exploring related tables, understanding mapping). Does not mention alternatives or when not to use, but given the context and sibling names, it's clear that this tool is for mapping discovery. A mention of siblings would improve it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_discover_tablesARead-onlyIdempotent
搜索 SQL Server 中包含关键字的表名(仅查系统目录,不读业务数据)。
适用场景:
想知道"采购"相关的表有哪些
快速定位业务表名,不记得确切名称时
配合 kingdee_discover_columns 一起使用,先找表再看字段
搜索范围:SQL Server 系统目录(information_schema.TABLES / sys.tables)
Returns: str: 表名列表,含表名、类型、创建时间
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent. The description adds that it queries only system catalog (not business data) and specifies the return format (table names, types, creation time). This adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: a single sentence for the action, a bullet list for use cases, a line for scope, and a return type indication. No wasted words, and the most important info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple discovery tool, the description covers purpose, usage scenarios, scope, and return format. It also references a complementary sibling tool. Combined with annotations and schema descriptions, it provides sufficient context for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for both parameters (pattern and limit). The tool description implicitly references pattern via 'keywords' but does not mention limit or provide additional parameter context. Since schema coverage is high, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching SQL Server table names containing keywords, scoped to system catalog only. It specifically distinguishes from sibling tools by mentioning complementary use with kingdee_discover_columns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use cases are provided (e.g., finding tables related to 'purchase', quick name location) and guidance to combine with kingdee_discover_columns. Scope and limitations (only system catalog, no business data) are clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_download_attachmentARead-onlyIdempotent
按 WebAPI V6.0 下载一块附件,返回 Base64 file_part,不写服务器本地文件。
file_id 使用上传返回的 FileId,不是附件内码 attachment_ids。 首次 start_index=0;is_last=false 时用返回的 start_index 继续下载,直到 next_action=null。 每块分别 Base64 解码后按顺序拼接字节,不要直接拼接 Base64 字符串。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the return format (Base64 file_part), confirms no local file is written, explains the chunk continuation loop, and warns not to concatenate Base64 strings directly but to decode each chunk and concatenate bytes in order. This is substantial operational context that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and non-local-file behavior are front-loaded, followed by concise procedural notes for pagination and byte assembly. Every sentence is actionable and directly relevant to correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return structure need not be exhaustively described. The description still supplies the essential chunking loop, return value meaning, and byte-concatenation rule, leaving no material gap for an agent to call and assemble the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds critical meaning to file_id by distinguishing the upload-returned FileId from the attachment internal code, and it explains start_index usage across first and subsequent calls. Even though the reported schema coverage is 0%, the description compensates fully for both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: download one attachment chunk via WebAPI V6.0, returning Base64 file_part without writing a server-local file. This is clearly distinguishable from sibling tools such as kingdee_upload_attachment, and the chunked-download purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit invocation guidance: start with start_index=0, continue using the returned start_index while is_last=false, and stop when next_action=null. It also warns that file_id must be the upload-returned FileId rather than attachment_ids. It does not explicitly name when to choose a different sibling tool, but the download context is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_enable_billsA
反禁用基础资料(opNumber=Enable)。
FormId 参数化通用工具(非某单专用,理由:反禁用是标准动作应走通用工具防重复), 仅适用于基础资料(如 BD_Customer / BD_Supplier / BD_Material / BD_Stock 等)。
action 依据:范探源 2026-08-07 三重证据查证 + QA 严过关真机实测——反禁用 = Enable。
端点/格式:ExecuteOperation,opNumber=Enable 放顶层,data 只放业务参数。
传参:bill_ids(FID 列表,优先)或 bill_nos(编号列表,基础资料用 FNumber),至少一个。
二开基础资料自定义反禁用动作时,可显式传 operation 覆盖默认 Enable。
Returns: str: JSON,含 success / fid / ids / action / endpoint 字段(注意是 fid/ids 而非 id)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly=false, destructive=false, idempotent=false), yet the description still adds real value: ExecuteOperation endpoint, opNumber=Enable at the top level while data carries only business params, and the return key naming (fid/ids, not id). It does not address behavior when the record is already enabled, which matters given idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bullet layout is front-loaded and scannable, but the line 'action 依据:范探源 2026-08-07 三重证据查证 + QA 严过关真机实测' is internal provenance noise that does not help an agent invoke the tool and consumes a full bullet.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterized generic action tool this covers what an agent needs: domain restriction, action code, endpoint/placement convention, parameter precedence, override mechanism, and which return fields to read. The presence of an output schema means return values need not be fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description has to carry the load, and it does: bill_ids as an FID list (preferred), bill_nos as FNumber for master data, mutual exclusivity rule, and the operation override for custom actions. The form_id parameter's constraint is conveyed only by example (BD_* forms), and the outer params wrapper is never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (反禁用基础资料, action=Enable) and bounds the scope to master data (BD_Customer / BD_Supplier / BD_Material / BD_Stock), explicitly rejecting single-form specialization. An agent can tell it apart from the many per-document action tools, though it never names its direct counterpart kingdee_forbid_bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear exclusion (仅适用于基础资料, not ordinary bills) and a precondition (bill_ids or bill_nos, at least one, with bill_ids preferred), plus an escape hatch: pass operation explicitly for customized master data. It stops short of naming the inverse tool (kingdee_forbid_bills) or stating the required source state (must currently be forbidden).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_forbid_billsA
禁用基础资料(opNumber=Forbid,非 UnForbid;Disable 已废弃慎用)。
FormId 参数化通用工具(非某单专用,理由:禁用是标准动作应走通用工具防重复), 仅适用于基础资料(如 BD_Customer / BD_Supplier / BD_Material / BD_Stock 等)。
action 依据:范探源 2026-08-07 三重证据查证 + QA 严过关真机实测——禁用 = Forbid, Disable 已废弃慎用,勿用 UnForbid(无此常量)。
端点/格式:ExecuteOperation,opNumber=Forbid 放顶层,data 只放业务参数。
传参:bill_ids(FID 列表,优先)或 bill_nos(编号列表,基础资料用 FNumber),至少一个。
二开基础资料自定义禁用动作时,可显式传 operation 覆盖默认 Forbid。
Returns: str: JSON,含 success / fid / ids / action / endpoint 字段(注意是 fid/ids 而非 id)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, idempotent=false, so this is a recognized state-changing call. The description adds real value on mechanics (ExecuteOperation endpoint, opNumber must sit at the top level, data carries only business params) but says nothing about prerequisites — whether the record must be unaudited or unreferenced, what happens to transactions using the disabled master data, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Bullet structure and the front-loaded opNumber warning are good, but the provenance passage ('范探源 2026-08-07 三重证据查证 + QA 严过关真机实测') is justification for a human reviewer, not information an agent needs to select or invoke the tool. That line should be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the 'Returns' paragraph is largely redundant, and the parameter details are covered. What remains missing for a state-mutating master-data tool is the operational envelope: batch size limits on bill_ids, failure/partial-success behavior, and preconditions on record state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is reported at 0% for the wrapper, and while the nested ExecuteActionInput does document its properties, the description still compensates: it states bill_ids is preferred, that master data uses FNumber for bill_nos, that at least one identifier is required, and that operation can be overridden for custom 二开 forms. That last point is meaning the schema only hints at.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line names a specific verb+resource (禁用基础资料) and pins the exact operation code (opNumber=Forbid), then bounds scope to master data (BD_Customer / BD_Supplier / BD_Material / BD_Stock). That is enough to separate it from kingdee_enable_bills and from bill-level siblings like kingdee_void_bills, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit positive scope (only master data, with FormId examples) and explicit exclusions at the constant level (Disable deprecated, UnForbid does not exist, so don't use it). The '仅适用于基础资料' clause implicitly rules out 单据, but the description never names the reverse tool (kingdee_enable_bills) or says when an agent should prefer a bill-level action instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_get_bill_templateARead-onlyIdempotent
获取常用单据的「已验证 model 骨架」模板(销售报价单/销售订单/采购订单等)。
返回该表单的正确字段名、必填项、分录必填字段组成的 model 示例,AI 只需替换占位符填业务数据, 跳过字段摸索。占位符形如 <客户编码>。保存前建议再用 kingdee_validate_bill 校验。
支持的 form_id:SAL_Quotation / SAL_SaleOrder / PUR_PurchaseOrder(其它表单返回提示)。
| Name | Required | Description | Default |
|---|---|---|---|
| form_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered. The description adds real behavioral value beyond that: the output is a pre-verified static skeleton, placeholders use the <...> convention, and unsupported form_ids yield a prompt rather than an error. It does not describe caching or freshness of the template, which is the only notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return content are front-loaded, followed by the usage tactic and the supported-value list. Four short lines with almost no waste; the only slight redundancy is repeating the placeholder concept after already describing the sample model.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return shape needs no full explanation, and the description still characterizes it well. For a single required parameter with rich annotations, the definition covers purpose, allowed values, and next-step validation; only template staleness/versioning is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — form_id has no description or enum — so the description must carry the full burden, and it does: it enumerates the three supported values (SAL_Quotation / SAL_SaleOrder / PUR_PurchaseOrder) and explains the fallback behavior for any other value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (获取单据的「已验证 model 骨架」模板) and spells out exactly what the return contains: correct field names, required fields, required entry-line fields, and a model sample with placeholders. It also names the concrete form_ids it serves, so an agent can distinguish it from sibling field/query tools without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear workflow: use placeholders like <客户编码>, substitute business data, skip field exploration, and validate with kingdee_validate_bill before saving. It also notes that unsupported forms return a hint. It stops short of explicitly contrasting itself with kingdee_get_fields or kingdee_list_forms, so the when-not context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_get_fieldsARead-onlyIdempotent
获取指定表单的完整字段信息和业务规则。
不知道查询哪些字段时,或需要了解表单的业务限制时,先调用此工具。 本工具会调用金蝶 QueryBusinessInfo 接口拉取真实字段定义(带缓存)。
返回内容:
name/desc/db_tables/business_rules: 来自本地表单目录
recommended_fields: 推荐查询字段(精简版,给 LLM 看的)
metadata.fields: 所有主表字段(含 caption/type/must)
metadata.entries: 所有分录子表及其字段
metadata.required_fields: 主表必填字段列表
save_template: 自动生成的最小可保存 model 骨架(仅含必填字段)
字段格式说明:
FXxx 是普通字段
FXxx.FName 是关联字段取名称(例:FSupplierId.FName)
FXxx.FNumber 是关联字段取编码(例:FSupplierId.FNumber)
Returns: str: JSON 格式的字段信息
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds valuable behavioral context: '会调用金蝶 QueryBusinessInfo 接口拉取真实字段定义(带缓存)' (calls Kingdee API with caching). It also explains the output structure and field format, which is beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose, usage guideline, API call info, returned fields list, field format explanation. It is somewhat long but every sentence adds value. The important info is front-loaded. Could be slightly more concise, but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (returning multiple structured elements including fields, entries, required fields, save_template), the description fully covers what the agent needs to know. It explains the output format and field naming conventions. An output schema exists but is not shown; the description compensates well. For a read-only, idempotent tool with good annotations, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already contains clear descriptions for each parameter (form_id, entry_key, verbose). The description adds value by explaining the return content and field format notation (FXxx, FXxx.FName, FXxx.FNumber), which helps with usage. However, it doesn't add significant meaning beyond the schema for the parameters themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '获取指定表单的完整字段信息和业务规则' (get complete field info and business rules for a specified form). It uses specific verbs ('获取', '调用') and distinguishes from siblings (which are about querying or mutating records, not metadata). The title and description align perfectly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says '不知道查询哪些字段时,或需要了解表单的业务限制时,先调用此工具' (when unsure which fields to query or need to understand business rules, call this tool first). This provides clear context for use. While it doesn't list when not to use, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_list_formsARead-onlyIdempotent
搜索金蝶系统中可用的表单类型(form_id)。
不知道 form_id 时,先调用此工具搜索。例如:
输入"员工"返回 BD_Empinfo
输入"采购"返回采购相关的表单列表
留空返回所有常用表单
Returns: str: JSON 格式的表单列表,含 form_id、名称、描述、推荐字段、数据库表名
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds valuable behavioral context: it returns a JSON list with specific fields (form_id, name, description, recommended fields, database table name) and explains behavior for empty keyword (returns all common forms). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, front-loading the purpose. Every sentence adds value: main purpose, usage instruction, examples, and return format. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, readOnly), the description covers all needed context: when to use, input examples, return fields, and annotations cover safety. With output schema existing, the description is fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes the 'keyword' parameter, so coverage is high. The description adds concrete examples (e.g., '员工' returns BD_Empinfo) that illustrate the mapping, enhancing semantic understanding beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches for available form types in Kingdee system, which is distinct from sibling tools that query records or other entities. The examples and instruction to use this tool when form_id is unknown differentiate it from others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call this tool when form_id is unknown, providing a clear usage context. It also gives examples of inputs and outputs. However, it does not explicitly state when not to use it or mention alternatives, though the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_push_and_auditA
一次性走完 Push → (可选 Submit + Audit) 全流程。
Push 生成的目标单默认是草稿;本工具自动批量提交+审核所有生成的目标单 FID。 任何一步失败即停止;失败日志按整体 op="push_and_audit" 记录一次。
auto_submit_audit=False 时退化为纯 push(与 kingdee_push_bill 等价,但返回 steps 结构)。
Returns: str: JSON。含 steps、target_bill_nos、target_fids、halted_at / recovery_hint。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides extensive behavioral details beyond annotations: it explains the full flow (push draft, then submit+audit), failure handling (stop on error, single log entry), and the effect of auto_submit_audit. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (5 lines in Chinese) with front-loaded purpose. Every sentence adds value, and the structure flows logically from purpose to behavior to parameter option and return type.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-step, 7 parameters), the description covers purpose, behavior, failure handling, parameter options, and return structure. It is complete for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema already describes each sub-parameter, the description adds context for auto_submit_audit (equivalent to pure push) and the return structure. However, it does not enhance understanding of other parameters beyond the schema; baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as a one-stop flow of Push plus optional Submit and Audit, distinguishing it from siblings like kingdee_push_bill (pure push) and kingdee_audit_bills (audit only). It specifies the verb 'push_and_audit' and the resource 'target bills', with scope details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool vs alternatives by noting that setting auto_submit_audit=False makes it equivalent to kingdee_push_bill, and it mentions failure behavior (stop on any step). However, it does not explicitly list when not to use it or provide comprehensive alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_push_billA
将源单据下推生成目标单据(如销售订单下推销售出库单、采购订单下推采购入库单)。
常用下推场景:
销售订单 → 销售出库单: form_id=SAL_SaleOrder, target_form_id=SAL_OUTSTOCK
采购订单 → 采购入库单: form_id=PUR_PurchaseOrder, target_form_id=STK_InStock
采购订单 → 收料通知单: form_id=PUR_PurchaseOrder, target_form_id=PUR_ReceiveBill
销售订单 → 销售退货单: form_id=SAL_SaleOrder, target_form_id=SAL_RETURNSTOCK
转换规则说明:
默认(rule_id=空,enable_default_rule=false):Kingdee 使用系统配置的默认转换规则
enable_default_rule=true:强制启用该单据的默认下推规则,忽略 rule_id
rule_id 显式指定:绕过默认规则,直接使用指定规则(下推失败时常用此方式)
采购订单下推限制(关联数量规则):
采购订单【关联数量】>=【订单数量】时,无法下推收料单/入库单 (关联数量 = 累计收料数量 + 累计入库数量)
勾选【控制交货数量】时:
关联数量 >= 交货下限时,无法下推
关联数量 + 本次下推数量 > 交货上限时,目标单据无法保存
单据状态必须为"已审核",且未关闭、业务状态为"正常"
响应包含:
Result.ResponseStatus:保存结果(IsSuccess 判断整体是否成功)
Result.ConvertResponseStatus:每行下推转换结果(可查看具体分录成功/失败)
Returns: str: JSON,含 success / bill_nos / next_action 字段(成功时包含目标单据编号)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool creates target documents (write operation, consistent with readOnlyHint=false) and is not destructive (consistent with destructiveHint=false). It explains conversion rule behavior, failure handling (draft_on_fail), and response structure. It adds context beyond annotations, though idempotency is not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for common scenarios, conversion rules, limitations, and response. It is front-loaded with the main action. However, it is lengthy and could be slightly more concise without losing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and input schema with descriptions, the description covers conversion rules, limitations, and response fields. It lacks explicit mention of idempotency or error types, but overall provides sufficient context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the description does not have a dedicated parameter section, it adds value by illustrating parameter usage with examples (e.g., form_id values) and explaining nuanced behaviors like when to set rule_id explicitly or enable_default_rule=true. The input schema already provides descriptions, so the description's contribution is moderate but useful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool pushes source documents to target documents with specific examples. It identifies the action (下推) and the resource (单据). However, it does not explicitly differentiate from sibling push tools like kingdee_push_production_pick, which are more specialized.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides detailed guidance on when to use default rule, enable_default_rule, or explicit rule_id. It also lists conditions under which push fails (e.g., linked quantity exceeds order quantity) and required document states (已审核, not closed). It does not compare to alternative tools but provides clear when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_push_production_pickB
从生产订单下推生成生产领料单(PRD_PickMtrl)。
Returns: str: JSON,含 success / target_bill_nos / next_action
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive behavior. The description adds the return format (JSON with success/target_bill_nos/next_action). However, it does not elaborate on error handling, side effects, or the draft_on_fail parameter's effect beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence plus return note) and front-loads the purpose. It contains no unnecessary words, but it omits important details, making it slightly under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and no output schema, the description is incomplete. It lacks usage guidelines, parameter explanations, and behavioral details beyond the basic purpose. The return format is mentioned but not fully explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any parameters. The input schema has three properties (bill_nos, rule_id, draft_on_fail) with some descriptions in Chinese, but context indicates schema_description_coverage is 0%, meaning the tool description should compensate. It fails to add meaning, e.g., it does not clarify that 'bill_nos' refers to production order numbers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: '从生产订单下推生成生产领料单' (push from production orders to generate production pick materials). It specifies the verb (generate/push) and resource (production pick material list), and the tool is distinct from siblings like 'kingdee_push_production_stock_in' or 'kingdee_push_stock_transfer'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs. alternatives (e.g., other push tools). It does not mention prerequisites, scenarios, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_push_production_stock_inB
从生产领料单下推生成生产入库单(PRD_Instock)。
Returns: str: JSON,含 success / target_bill_nos / next_action
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false), but the description adds minimal behavioral insight beyond the return format (JSON with success, target_bill_nos, next_action). It does not disclose idempotency, partial failure behavior, or authorization requirements, relying heavily on annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for the core purpose and one sentence for the return value. It is front-loaded with the primary action, contains no extra words, and is well-structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple parameters, push workflow) and the absence of an explicit output schema, the description is too sparse. It omits prerequisites (e.g., valid material requisition state), error handling, and relationships to other tools, leaving significant gaps in the agent's understanding of proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention any parameters, and schema description coverage is 0%. Although the input schema itself describes parameters (bill_nos, rule_id, draft_on_fail), the description must compensate for low coverage but fails to add any semantic context about how or why to use them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: pushing from production material requisition to generate a production stock-in order. It uses a specific verb-resource combination ('从生产领料单下推生成生产入库单') and distinguishes itself from sibling tools like kingdee_push_bill and kingdee_push_production_pick by focusing on the specific stock-in document type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as kingdee_push_bill or kingdee_push_stock_transfer. It lacks explicit context about prerequisites, typical scenarios, or exclusion criteria, leaving the agent to infer usage solely from the tool's name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_push_stock_transferA
从调拨申请单下推到直接调拨单(STK_TransferApply -> STK_TransferDirect)。
用于将调拨申请单下推生成直接调拨单,一步完成调拨。
参数说明:
form_id: 固定为 STK_TransferApply(调拨申请单)
target_form_id: 固定为 STK_TransferDirect(直接调拨单)
source_bill_nos: 调拨申请单的单据编号列表
转换规则说明:
默认(rule_id=空):使用系统配置的默认转换规则
enable_default_rule=true:强制启用默认下推规则
rule_id 显式指定:绕过默认规则,使用指定规则
响应包含:
Result.ResponseStatus:保存结果(IsSuccess 判断整体是否成功)
Result.ConvertResponseStatus:每行下推转换结果
Returns: str: JSON,含 success / bill_nos / next_action 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, and the description discloses the behavior: it creates a direct transfer order from a transfer application. It explains the conversion rules (default vs explicit rule) and the response fields, providing full transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points for parameters and conversion rules. It is slightly lengthy but efficiently explains required details. The main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, annotations, and no output schema (but a textual return description), the description covers all necessary aspects: purpose, parameters, conversion logic, and return format. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining each parameter: fixed form IDs, source_bill_nos as a list, rule_id options, enable_default_rule, and draft_on_fail. This adds substantial meaning beyond the generic schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('下推' push down) and the specific resources ('调拨申请单' to '直接调拨单' with fixed form IDs). It distinguishes from sibling tools like kingdee_push_bill by targeting stock transfer specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains parameters and conversion rules but does not explicitly state when to use this tool vs alternatives (e.g., kingdee_push_bill or kingdee_push_production_pick). The context of stock transfer is implied but not contrasted with other push operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_approval_flowARead-onlyIdempotent
查询金蝶云星空的审批流程记录。
记录单据从提交到最终审核的完整审批轨迹,包括每个节点的审批人、时间、结果和意见。 用于审批追溯、流程优化、合规检查。
推荐场景:
审批追溯:某张单据走过了哪些审批节点
流程优化:分析审批时长和瓶颈
合规检查:确认关键单据是否按流程审批
注意:金蝶审批流程数据可能存储在多个表单中, 如 V_SFA_ApprovalRecord(审批记录)、Workflow_Instance(流程实例)等。 如查询无结果,请用 kingdee_get_fields 查看实际可用字段。
Returns: str: JSON 格式的审批流程列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds value by stating the return format (JSON list of approval flows) and warning that data may be stored across multiple forms, which indicates potential complexity in data retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise, with a clear opening statement followed by bullet points and a note. It front-loads the core purpose and efficiently conveys usage guidance. Some redundancy exists (e.g., repeating 'approval' in multiple bullet points), but overall it remains actionable without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a detailed input schema and an output schema (as per context signals), the description covers the essential aspects: purpose, usage scenarios, a caution about data source, and return format. It does not detail error handling or exhaustive examples, but it is adequate for understanding what the tool does and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides comprehensive descriptions for all parameters (e.g., form_id, bill_id, status, dates, pagination). The tool description does not add additional parameter semantics beyond what the schema already provides. With full schema coverage, baseline score 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function: querying approval flow records in Kingdee Cloud Star. It outlines the complete approval trajectory including nodes, personnel, times, results, and opinions. The recommended scenarios (approval tracing, process optimization, compliance checks) further clarify the purpose and distinguish it from sibling query tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios (approval tracing, process optimization, compliance checks) and includes a note advising to use kingdee_get_fields if no results, offering a fallback. While it lacks direct 'when not to use' instructions, the context and sibling tool names (e.g., kingdee_query_bills) imply the tool is specifically for approval flows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_asset_cardARead-onlyIdempotent
查询资产卡片(FA_FAGet 或子单据)。 资产卡片是固定资产的详细记录,包含原值、累计折旧、净值、卡片状态等信息。 常用 filter_string:
指定资产编号: "FNumber='FA001'"
指定保管人: "FCustodian.FNumber='EMP001'"
已计提折旧: "FTotalDepreciate>0" 推荐 field_keys: FID,FNumber,FName,FAssetSource,FOriginalAmount,FTotalDepreciate,FNetAmount,FDepreciateMonth,FUsefulLife,FSalvageValue,FCustodian.FName
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by detailing the kind of data queried and providing operational hints (filter examples, field keys). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with purpose. It includes extra helpful info (recommended field keys) without being verbose. Minor lack of structure (e.g., no sections) but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and rich annotations, the description covers purpose, usage, and important hints. It does not explain return values (handled by output schema) or sorting/pagination (in input schema). Fairly complete for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all parameters. The description adds specific examples for filter_string and field_keys relevant to asset cards, but does not cover all parameters. Schema coverage from description is partial; baseline 3 is appropriate since schema handles the rest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries asset cards (FA_FAGet or sub-documents) and explains what an asset card contains (original value, depreciation, net value, status). It provides specific filter and field key examples, distinguishing it from sibling tools like kingdee_query_asset_depreciation or kingdee_query_asset_transfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives examples for filter_string and field_keys but does not explicitly state when to use this tool vs alternatives or any exclusions. Usage is implied through examples, but without explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_asset_depreciationARead-onlyIdempotent
查询资产折旧记录(FA_DepreciationBill)。 折旧记录是固定资产计提折旧的明细,反映每月折旧费用、累计折旧、净值变化。 常用 filter_string:
指定期间: "FYear=2024 and FPeriod=3"
指定资产: "FAssetId.FNumber='FA001'" 推荐 field_keys: FID,FYear,FPeriod,FAssetId.FNumber,FAssetId.FName,FDepreciateDeptId.FName,FDepreciateAmount,FOriginalAmount,FTotalDepreciate,FNetAmount
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds context about the nature of depreciation records but not additional behavioral traits like pagination, rate limits, or specific authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences covering purpose, explanation, and examples. Concise but the second sentence could be merged with the first for even tighter structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and rich annotations, the description provides sufficient context for a query tool. It covers core usage with examples, though additional details on ordering or pagination could be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Though the input schema already describes parameters well (high coverage), the description adds value with concrete filter_string examples and recommended field_keys specific to this tool, helping the agent craft effective queries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it queries asset depreciation records (FA_DepreciationBill) and explains what they represent. The tool name and sibling context (e.g., query_asset_card, query_asset_scrape) make it distinct, though explicit differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful filter_string and field_keys examples, indicating when to use the tool, but lacks explicit guidance on when not to use it or how it compares to sibling query tools for other asset types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_asset_scrapeARead-onlyIdempotent
查询资产报废单(FA_Scrape)。 资产报废记录固定资产的处置,包括正常报废、提前报废、毁损等。 常用 filter_string:
已审核: "FDocumentStatus='C'"
指定资产: "FAssetId.FNumber='FA001'"
报废类型: "FScrapeType='NORMAL'" 推荐 field_keys: FID,FBillNo,FScrapeDate,FDocumentStatus,FAssetId.FNumber,FAssetId.FName,FOriginalAmount,FTotalDepreciate,FNetAmount,FScrapeType,FHandleMethod
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is read-only and query-based, aligning with annotations (readOnlyHint=true). It adds domain-specific context about asset scrap types and provides practical filter and field examples, which goes beyond the annotation's binary flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear opening sentence, a brief domain explanation, and bullet-like examples. Every sentence adds value, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description need not cover return values. It includes domain-specific knowledge and query examples. However, it lacks explicit guidance on when to use this tool over siblings, which slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already includes descriptions for all parameters, so the baseline is 3. The description adds value by providing concrete examples of filter_string values and recommended field_keys, which aids the agent in constructing effective queries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries asset scrap orders ('查询资产报废单') with the specific form ID FA_Scrape, and explains the domain context (disposal of fixed assets, including normal and early scrapping). This is a specific verb+resource that distinguishes it from other asset-related query tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides common filter_string examples and recommended field_keys, which gives usage context for query construction. However, it does not explicitly differentiate when to use this tool versus sibling tools like kingdee_query_fixed_asset or kingdee_query_asset_card.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_asset_transferARead-onlyIdempotent
查询资产调拨单(FA_Transfer)。 资产调拨记录固定资产在部门或使用人之间的转移。 常用 filter_string:
已审核: "FDocumentStatus='C'"
指定资产: "FAssetId.FNumber='FA001'"
原使用部门: "FOldDeptId.FNumber='D001'" 推荐 field_keys: FID,FBillNo,FTransferDate,FDocumentStatus,FAssetId.FNumber,FAssetId.FName,FOldDeptId.FName,FNewDeptId.FName,FTransferReason
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no new behavioral traits beyond the context of querying asset transfers. It does not disclose pagination behavior or other operational details not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short paragraphs with bulleted examples. Every sentence earns its place, and the key information is front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and standard query pattern, the description is largely complete. It covers purpose, key parameters with examples, and entity meaning. Minor gap: no mention of pagination limits or default ordering, which are in the schema but not highlighted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 0% per signal, the description provides concrete examples for filter_string and field_keys, adding value beyond the generic schema descriptions. This helps agents craft effective queries, though it does not cover all parameters like order_string or pagination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states '查询资产调拨单' (query asset transfer orders) and identifies the resource as 'FA_Transfer'. Explains the nature of asset transfers, distinguishing it from sibling tools that query other asset-related records like asset cards or fixed assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides practical examples of filter_string and recommended field_keys, aiding usage. However, it does not explicitly state when to use this tool versus alternatives like kingdee_query_asset_card or kingdee_query_fixed_asset, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_audit_logARead-onlyIdempotent
查询金蝶云星空的审计日志(BOS_AuditLog)。
记录单据的审核操作:谁在什么时候审核了哪张单据、审核结果是什么。 用于合规审计、审批追溯、反舞弊检查。
推荐场景:
合规要求:保留所有审核操作的审计轨迹
问题排查:某张单据的审核历史
责任追溯:谁在什么时间通过了/驳回了审批
返回字段说明:
FCREATEDATE: 审核时间
FCREATORID: 审核人
FOBJECTID: 单据内码
FFORMID: 单据类型
FAUDITRESULT: 审核结果(通过/驳回/取消)
FMEMO: 审核意见
Returns: str: JSON 格式的审计日志列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description is not required to repeat these. It adds context by explaining the data fields and return format, but does not disclose any additional behavioral traits (e.g., rate limits, authentication needs), which is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: first states the main purpose, then details what the log records, followed by recommended scenarios, and finally return field descriptions. It is concise without being terse, though slightly longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many parameters) and the presence of annotations indicating read-only, the description covers the core purpose, usage scenarios, and return fields. It explains the intent and data structure, making it sufficient for an agent to understand when and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides detailed descriptions for all parameters (100% coverage), so the description does not need to add parameter details. The description lists return fields, which is helpful but not directly related to parameters. Baseline score 3 applies as schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name 'kingdee_query_audit_log' and title '查询审计日志' directly state the action and resource. The description specifies that it queries audit logs from Kingdee Cloud Star (BOS_AuditLog), clearly distinguishing it from sibling tools like approval flow or pending approvals by focusing on audit trail data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit recommended scenarios: compliance audit, problem investigation, and responsibility tracing. However, it does not explicitly state when not to use this tool or mention alternatives, which would improve clarity for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_billsARead-onlyIdempotent
查询金蝶云星空任意单据列表,支持过滤、排序和分页。
适用 form_id 示例:PUR_PurchaseOrder(采购订单)、SAL_SaleOrder(销售订单)、 STK_InStock(采购入库)、SAL_OUTSTOCK(销售出库)、STK_MisDelivery(其他出库)。
也可查基础资料:BD_Currency(币别)、BD_AccountBook(账簿)、 BD_VOUCHERGROUP(凭证字)、BD_RateType(汇率类型)等。这类表单的查询视图 没有 FID 列,工具会自动去掉 FID 字段与 FID 排序,无需调用方特殊处理(#28)。
Returns: str: JSON,含 form_id / count / has_more / data 字段; 发生自动降级时额外带 notice 字段说明
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real behavioral context beyond that: base-data forms lack an FID column and the tool silently strips FID from fields and sorting, returning a 'notice' field when this degradation occurs (#28). This is exactly the kind of automatic-behavior disclosure an agent needs; only rate limits/field-validation behavior is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and supported operations, then examples, then the FID caveat, then returns. Each paragraph carries distinct information; only the example list is slightly long relative to its value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the returns paragraph is partly redundant but still usefully names the has_more/notice fields. Combined with the FID degradation note and form_id examples, an agent has enough to call this correctly; the main remaining gap is routing guidance against the many one-entity query siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The top-level 'params' wrapper has no description (0% coverage on the counted parameter), but the nested QueryInput properties are fully documented in the schema itself. The description contributes the form_id example values and the FID-removal caveat that affects the field_keys and order_string defaults, but says nothing extra about filter_string syntax or ordering format beyond the schema's example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — query any Kingdee bill list — with the supported operations (filter, sort, pagination) named up front, and the form_id examples make the scope concrete. It implicitly differentiates itself from the many entity-specific siblings (e.g. kingdee_query_purchase_orders) by claiming '任意单据' (any bill), but never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The form_id examples (PUR_PurchaseOrder, SAL_SaleOrder, STK_InStock, plus base-data forms like BD_Currency) implicitly tell the agent what this tool is good for. However, there is no explicit statement about when to prefer this generic tool over the dozens of specialized query siblings, nor any prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_change_logARead-onlyIdempotent
查询金蝶云星空的单据变更记录(BOS_ModifyLog)。
记录单据字段的修改历史:谁在什么时候修改了什么字段、从什么值改成了什么值。 用于数据变更追溯、合规审计、问题排查。
推荐场景:
数据治理:追踪关键字段的变更历史
问题排查:某张单据的修改记录
合规要求:保留重要数据的修改轨迹
返回字段说明:
FCREATEDATE: 修改时间
FCREATORID: 修改人
FOBJECTID: 单据内码
FFIELDNAME: 字段名称
FOLDVALUE: 修改前的值
FNEWVALUE: 修改后的值
Returns: str: JSON 格式的变更记录列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, destructiveHint=false) indicate safe read. The description adds behavioral context: it retrieves historical change records with details on who, what, when, and value changes. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with clear sections for purpose, scenarios, and return fields. It is slightly verbose but effectively front-loads key information. Minor redundancy could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, output schema exists), the description covers purpose, use cases, and return fields comprehensively. It is complete for an agent to understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has detailed descriptions for all 11 parameters (100% coverage). The description adds no additional parameter-specific meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the tool queries bill change logs for Kingdee Cloud Star, targeting BOS_ModifyLog. It clearly states the resource and action, distinguishing it from sibling tools like kingdee_query_bills which query current bill data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides recommended scenarios (data governance, problem investigation, compliance) and lists return fields. While it doesn't explicitly contrast with siblings, the use case is clear and well-contextualized.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_cost_adjustmentsARead-onlyIdempotent
查询成本调整单(STK_CostAdjust)。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定调整类型: "FAdjustType='1'"
推荐 field_keys: FBillNo,FDate,FDocumentStatus,FCostOrgId.FNumber,FCostOrgId.FName,FAdjustType,FAdjustAmount
Returns: str: JSON 格式的成本调整单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnly, non-destructive, idempotent. Description adds context (entity type, typical filters) but does not elaborate on behavior beyond annotations, which already set expectations of safe read operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with no wasted words. It front-loads the core purpose and uses a structured code block for examples, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations and output schema existence, the description is largely complete for a simple query tool. It could mention pagination or result format more explicitly, but it adequately covers the main purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already provides descriptions for all parameters. The description adds value by suggesting common filter_string values and recommended field_keys, going beyond schema to guide effective use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries cost adjustment orders (STK_CostAdjust). The name and description are specific and align, distinguishing it from sibling query tools for other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides examples of filter_string and recommended field_keys, aiding effective usage. However, it lacks explicit guidance on when to use this tool versus alternatives like kingdee_query_bills or other cost-related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_cost_calculationARead-onlyIdempotent
查询成本计算单(CB_CostCalBill)列表。
常用 filter_string:
指定年度: "FYear=2024"
指定期间: "FPeriod='01'"
指定物料: "FMaterialId.FNumber='MAT001'"
推荐 field_keys: FYear,FPeriod,FMaterialId.FNumber,FMaterialId.FName,FCostAmt,FMaterialCost,FLabourCost
Returns: str: JSON 格式的成本计算单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns a JSON list, which is minimal. No additional behavioral traits like pagination behavior (though schema covers start_row/limit) or API limits are mentioned. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one line for purpose, then bullet-like examples for filter_string, a line for recommended field_keys, and a line for return type. Every sentence adds value with no redundancy. Front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 sub-parameters, many siblings), the description covers purpose, usage examples, and return format well. It could mention the expected form_id value (CB_CostCalBill) explicitly, but the name implies it. The presence of an output schema (inferred from return type) reduces need for further detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite schema description coverage reported as 0%, the schema actually has descriptions on each property. The tool description adds domain-specific examples for filter_string (FYear, FPeriod, FMaterialId.FNumber) and recommends field_keys, which go beyond the generic schema descriptions and provide practical guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a list of cost calculation sheets (CB_CostCalBill), which is a specific entity. The title from annotations matches the description. Among many query siblings, this one is uniquely identified by its focus on cost calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete filter_string examples (year, period, material) and recommends field_keys. However, it does not explicitly state when to use this tool versus other cost-related queries like kingdee_query_material_cost or kingdee_query_cost_adjustments, nor does it mention not to use it for other cost forms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_cost_centersARead-onlyIdempotent
查询成本中心基础资料(CB_CostCenter)。
常用 filter_string:
指定编码: "FNumber like 'CC%'"
启用状态: "FIsActive='1'"
推荐 field_keys: FNumber,FName,FDeptId.FName,FIsActive
Returns: str: JSON 格式的成本中心列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds behavioral context by showing the response is JSON-formatted and providing filter examples. It does not contradict annotations and enhances understanding of expected behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and well-structured with bullet points for key usage hints. Every sentence adds value, and it is front-loaded with the purpose. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists (context signal), so the description does not need to detail return values. However, it only states 'JSON format' without specifying common fields or structure. For a query tool, more detail on expected output fields would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for filter_string and field_keys with concrete examples, but does not cover other parameters like form_id, order_string, start_row, limit. Schema description coverage is 0%, so the description partially compensates but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries cost center basic data with a specific form ID (CB_CostCenter). The tool name and title are descriptive. Among many sibling query tools, this one is distinctly for cost centers, making purpose clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides example filter strings and recommended field_keys, which gives practical usage guidance. However, it does not explicitly specify when to use this tool versus alternatives (e.g., other cost-related queries) or any conditions where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_cost_itemsARead-onlyIdempotent
查询成本项目基础资料(CB_CostItem)。
常用 filter_string:
指定编码: "FNumber like 'CI%'"
成本项目类型: "FCostItemType='1'"
推荐 field_keys: FNumber,FName,FCostItemType,FIsActive
Returns: str: JSON 格式的成本项目列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns a JSON list, but no behavioral traits beyond that, such as pagination behavior or whether it works without form_id being set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a clear main line, examples, and return type note. No redundant sentences; every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description adequately covers purpose and provides practical examples. However, it does not specify what form_id should be used for cost items, which is a required parameter and likely has a fixed value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has rich descriptions for all parameters, but the description adds domain-specific examples for filter_string and field_keys, which are valuable beyond the schema's generic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries cost item basic data (CB_CostItem), aligning with the name and distinguishing from many sibling query tools by specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete examples of filter_string and field_keys, but lacks explicit guidance on when to use this tool vs other query tools, nor any context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_cost_trendARead-onlyIdempotent
查询成本价趋势分析表(STK_CostTrend)。
分析物料成本价格的变化趋势。
常用 filter_string:
指定物料: "FMaterialId.FNumber='MAT001'"
指定日期范围: "FDate>='2024-01-01' and FDate<='2024-12-31'"
推荐 field_keys: FMaterialId.FNumber,FMaterialId.FName,FDate,FCostPrice,FPriceChange
Returns: str: JSON 格式的成本价趋势列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the bar is lower. The description adds that it returns a JSON list of cost trends, but does not disclose other behavioral traits like rate limits, authentication needs, or edge cases. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, followed by concise examples and a note on return format. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the read-only nature, annotations, and existence of an output schema, the description is largely complete. It could mention prerequisites like needing material IDs, but overall provides sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides specific examples of filter_string (material and date range) and recommended field_keys, adding meaningful context beyond the generic schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries the cost price trend analysis table (STK_CostTrend) and analyzes material cost price trends. It distinguishes from siblings by specifying the exact table and purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives examples of filter_string and field_keys, implying usage context, but does not explicitly state when to use this tool over other cost-related query tools (e.g., kingdee_query_material_cost) or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_data_backupARead-onlyIdempotent
查询金蝶云星空的数据备份记录。
记录系统的数据备份和恢复操作。 用于灾备验证、合规检查、恢复演练。
推荐场景:
灾备验证:确认备份是否按计划执行
合规要求:保留备份操作的审计轨迹
恢复演练:查找可用的备份点
注意:金蝶备份数据可能存储在系统配置表或其他后台表单中, 如需访问请确认当前用户有系统管理权限。 如查询无结果,请用 kingdee_get_fields 查看实际可用字段。
Returns: str: JSON 格式的数据备份记录列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds context: backup data may be in system config tables or background forms, requires system admin permissions, and that no results may indicate missing fields (prompting use of kingdee_get_fields). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short and front-loaded with purpose, followed by bulleted scenarios and a caution. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of output schema and well-described input schema parameters, the tool description covers purpose, usage scenarios, access prerequisites, and fallback guidance. It is complete for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage from description is 0%: the description does not mention any of the input parameters (backup_type, status, operators, dates, filter, pagination), despite the schema having good parameter descriptions. The description relies entirely on schema for parameter meaning, requiring the agent to read schema separately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool queries data backup records of Kingdee Cloud Star ('查询金蝶云星空的数据备份记录'), specifies it records backup and restore operations, and is distinct from sibling query tools (e.g., kingdee_query_audit_log).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit recommended scenarios (disaster recovery verification, compliance, recovery drills) and advice on using kingdee_get_fields if results are empty. Lacks explicit when-not-to-use or comparison with other query tools, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_delivery_noticeARead-onlyIdempotent
查询发货通知单。
对应金蝶 ApiDoc 销售管理域「发货通知」模块,FormId: SAL_DELIVERYNOTICE。 用于查询待发货/已发货通知单及其客户信息,支持按客户、日期、单据状态筛选。
⚠️ 字段 Key 警示(真机实测,范探源已验证): 本账套客户字段的元数据 Key 是 FCustomerID(大写 ID 后缀)。误用 FCustId 会报 「元数据中标识为FCustId的字段不存在」——本环境的 FCustId 在元数据中不存在,切勿改回 FCustId。 字段 Key 一律以 kingdee_get_fields 元数据为准。
⚠️ 动作范围说明:标准保存/提交/审核动作已由通用 kingdee_save_bill / kingdee_submit_bills / kingdee_audit_bills 等按 FormId 参数化覆盖,本工具仅做查询,不负责写操作。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定客户: "FCustomerID.FNumber='C001'"
日期区间: "FDate>='2026-05-01' and FDate<='2026-05-31'"
推荐 field_keys(已按本环境元数据校验可用): FID,FBillNo,FDate,FDocumentStatus,FCustomerID.FName
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds valuable environment-specific behavior: the FCustomerID vs FCustId field-key pitfall and the explicit no-write scope, though it does not discuss pagination or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded, with useful headings and bullets. The field-key warning is slightly verbose in repeating the failure mode and verification context, but each section remains actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and safety annotations already present, the description supplies the key invocation details: FormId, query-only boundary, filter syntax, recommended field keys, and the critical environment-specific key caveat. Pagination and ordering defaults are adequately left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents each parameter, giving a baseline of 3. The description goes beyond it with concrete filter_string examples for status, customer, and date ranges, plus a validated field_keys list; limit, start_row, and order_string remain schema-only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb '查询' and resource '发货通知单', pins FormId SAL_DELIVERYNOTICE, and describes the customer/status/date filtering scope. The write-scope warning also distinguishes it from mutation siblings such as kingdee_save_bill and kingdee_submit_bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says the tool is query-only and that save/submit/audit actions are handled by named generic alternatives. It also directs agents to verify field keys via kingdee_get_fields, giving clear when-not and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_expense_reimburseARead-onlyIdempotent
查询费用报销单。
专门用于查询费用报销单据,支持按状态、金额、日期筛选。
Returns: str: JSON 格式的费用报销单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns a JSON list but does not elaborate on other behaviors like authorization or pagination limits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus a return type note. Every word serves a purpose, and it is front-loaded with the core function. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a detailed input schema and output schema (implied by context), the description covers the essential purpose and filtering. It does not mention pagination details or default fields, but the schema compensates. Overall, it is sufficiently complete for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description does not describe any parameters (0% coverage), but the input schema provides detailed descriptions for each property (e.g., form_id, filter_string). The schema already conveys parameter semantics, so the description adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool queries expense reimbursement documents ('查询费用报销单') and mentions filtering capabilities. Among siblings, it is distinct as it targets expense reimbursement specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool is for querying expense reimbursement documents with filtering, but does not provide explicit guidance on when to use it versus alternatives or when not to use it. It is adequate but lacks exclusionary context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_finished_product_costARead-onlyIdempotent
查询完工入库产品成本(CB_FinishInCostQuery)。
常用 filter_string:
指定生产订单: "FMoBillNo='MO000001'"
指定期间: "FYear=2024 and FPeriod='01'"
推荐 field_keys: FMoBillNo,FMaterialId.FNumber,FMaterialId.FName,FFinishQty,FCostPrice,FCostAmt
Returns: str: JSON 格式的完工成本列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint. The description adds no further behavioral details beyond returning JSON. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one line for purpose, followed by essential examples and return type. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters in nested schema) and presence of output schema, the description covers key usage patterns and return format. Lacks explanation of form_id usage but schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions are comprehensive. The description adds domain-specific examples for filter_string and field_keys, enhancing practical understanding beyond the generic schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries finished product cost from stock-in (完工入库产品成本) and provides the internal query ID. It distinguishes itself from sibling query tools by specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete filter examples and recommended field keys, implying usage context for production orders and periods. However, it does not explicitly compare to sibling tools or state when to use this vs alternatives like kingdee_query_material_cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_fixed_assetARead-onlyIdempotent
查询固定资产卡片主数据(FA_FAGet / BD_MainData,formId: FA)。 固定资产是企业长期使用的有形资产,如房屋、机器设备、运输工具等。 支持按资产编号、名称、状态、使用部门等条件筛选。 常用 filter_string:
已审核: "FDocumentStatus='C'"
指定资产编号: "FNumber='FA001'"
指定使用部门: "FUseDeptId.FNumber='D001'"
在用资产: "FStatus='USING'" 推荐 field_keys: FID,FNumber,FName,FAssetSource,FSpecification,FUsedPeriod,FOriginalAmount,FDepreciateRate,FUseDeptId.FName,FDocumentStatus,FStatus
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the formId and filter examples but does not disclose additional behavioral traits like pagination behavior or authentication needs. It is consistent but not especially rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with purpose, then context, then examples. Every sentence adds value. It is concise yet informative, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and comprehensive annotations, the description covers filtering capabilities and provides usage examples. It is complete for a query tool, though it could mention pagination parameters which are only in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds concrete examples for filter_string and recommends a set of field_keys, which goes beyond the schema descriptions. Despite schema description coverage being 0% in the tool description, the examples provide practical guidance for parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool queries fixed asset card master data, naming the API and formId. It defines fixed assets. However, it does not explicitly differentiate from sibling tools like kingdee_query_asset_card, though the domain specificity provides implicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it supports filtering by asset number, name, status, and department, and provides example filter_strings. However, it gives no guidance on when not to use this tool or alternatives, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_instant_cost_compareARead-onlyIdempotent
查询即时成本对比分析表(STK_InstantCostCompare)。
对比即时成本与核算成本的差异。
常用 filter_string:
指定物料: "FMaterialId.FNumber='MAT001'"
指定仓库: "FStockId.FNumber='WH01'"
推荐 field_keys: FMaterialId.FNumber,FMaterialId.FName,FStockId.FName,FInstantCost,F核算成本,FDiffAmt
Returns: str: JSON 格式的即时成本对比列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the agent knows it's a safe read. The description adds that it queries a specific table and returns a JSON list, plus provides examples of useful field keys. No contradictions. It goes beyond annotations by detailing the data content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 lines) and front-loaded with the main purpose, followed by examples. It avoids unnecessary fluff. Could be slightly more structured with bullet points, but overall effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple parameters), annotations (read-only), and existence of an output schema, the description covers the main purpose, provides concrete usage examples, and specifies the return format. It does not explain pagination or field meanings in detail, but is adequate for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning parameter descriptions are generic. The description compensates by giving specific examples for filter_string (material/warehouse) and field_keys, which add meaning beyond the generic schema. However, it does not describe parameters like order_string, start_row, or limit, leaving them to generic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries the 'STK_InstantCostCompare' table and compares instant cost with accounting cost. The verb '查询' (query) and resource are specific. Among siblings, this tool is distinct as it targets a specific cost comparison table, differentiating it from other cost-related query tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete examples of filter_string and field_keys, showing how to filter by material and warehouse. However, it does not explicitly state when to use this tool over other cost-related siblings like query_cost_calculation or query_material_cost, nor does it provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_inventoryARead-onlyIdempotent
查询即时库存数量(STK_Inventory)。
常用 filter_string:
指定物料: "FMaterialId.FNumber='MAT001'"
指定仓库: "FStockId.FNumber='WH01'"
有库存: "FBaseQty>0"(默认已设置)
Returns: str: JSON 格式的库存列表,含物料编码、名称、仓库、数量、单位
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and no destruction, which the description supports. It additionally describes return format (JSON string with fields) and default filtering, adding value beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two paragraphs with purpose, filter examples, and return format. Every sentence is informative and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple query tool with output schema, the description covers essential aspects: what it queries, how to filter, and output format. It could mention pagination behavior, but the parameters are self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides practical examples for filter_string and lists default fields, adding meaning beyond the schema's descriptions. It compensates for undocumented parameters like start_row and limit by showing default values in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: querying immediate inventory quantities from the STK_Inventory table. It provides specific filter examples and distinguishes from other query tools by naming the source table and focusing on inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers usage context through filter examples and default behavior, but does not explicitly guide when to use this tool versus sibling query tools like kingdee_query_materials or kingdee_query_stock_bills.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_loan_balanceARead-onlyIdempotent
查询历史借款余额(人人报销域)。
对应金蝶 ApiDoc「人人报销 → 历史借款余额」模块,FormId: ER_HistoricalLoanBalance。 用于查询员工/部门的借款余额快照,支持按状态、申请人、日期筛选。
⚠️ 环境注意:该单据在部分账套(如芯之蝶测试账套 <ACCT_ID>)未启用, kingdee_get_fields 会返回「未知表单」。本工具代码已就绪,待目标账套启用该模块后即可连真机使用; 字段 Key 以金蝶标准元数据为准,若实测报「字段不存在」请先用 kingdee_get_fields 复核。
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FApplicantId.FName,FEmployeeId.FName,FLoanAmount,FRepaidAmount,FUnRepayAmount
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description goes well beyond them: it warns the form is not enabled in some account sets (returning 「未知表单」 from kingdee_get_fields), explains the tool therefore may not work against a live system, and gives a concrete recovery path for 「字段不存在」 errors. That is exactly the kind of failure-mode disclosure annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and FormId, then the environment caveat, then the recommended field keys — a sensible ordering. It is on the long side with a multi-line warning block, but every section carries operational information an agent needs; nothing is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the description covers the essentials for a query tool: what entity, which FormId, which fields to request, and what to do when the form is unavailable. The only remaining gap is that it doesn't clarify how the recommended field_keys interact with the default in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents each leaf parameter (limit, start_row, field_keys, order_string, filter_string), but the description adds the tool-specific value the schema cannot — form_id should be ER_HistoricalLoanBalance — and supplies a curated field_keys list (FID, FBillNo, FApplicantId.FName, FLoanAmount, FRepaidAmount, FUnRepayAmount, etc.) that maps business concepts to Kingdee field names. It doesn't spell out filter_string syntax beyond the status/applicant/date hint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (查询历史借款余额) and pins it to the exact Kingdee module and FormId ER_HistoricalLoanBalance, with the business domain (人人报销) named. That level of specificity makes it unmistakable versus the generic kingdee_query_bills or the neighbouring kingdee_query_expense_reimburse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the intended scope — employee/department loan balance snapshots — and enumerates the supported filter dimensions (status, applicant, date), which tells the agent when this tool applies. It stops short of naming an alternative for cases where the module is unavailable, only saying to re-check fields with kingdee_get_fields, so the when-not guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_material_costARead-onlyIdempotent
查询物料成本库(BD_MaterialCost)。
返回物料的标准成本、最新成本、平均成本等信息。
常用 filter_string:
指定物料: "FMaterialId.FNumber='MAT001'"
指定成本组织: "FCostOrgId.FNumber='100'"
推荐 field_keys: FMaterialId.FNumber,FMaterialId.FName,FUnitId.FName,FStdCost,FLatestCost,FAvgCost
Returns: str: JSON 格式的物料成本列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's addition of return format (JSON list) is helpful but not essential. It adds database name but lacks details on authorization or rate limits, which is acceptable given the strong annotation profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, uses bullet points for examples, and clearly separates sections. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and detailed parameter schema, the description covers the essential query logic, return type, and usage patterns. Nothing critical is missing for a read-only query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per context, so the description bears the burden. It adds value by providing concrete filter_string and field_keys examples, but does not explain form_id, order_string, start_row, or limit. This partial coverage justifies a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a specific database (BD_MaterialCost) and returns standard, latest, and average costs. The verb '查询' combined with the specific resource '物料成本库' makes the purpose distinct from sibling query tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit filter string examples and recommended field keys, guiding usage. However, it does not contrast with similar tools like kingdee_query_finished_product_cost or mention when not to use this tool, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_material_cost_usageBRead-onlyIdempotent
查询生产材料耗用成本(CB_MaterialCostQuery)。
常用 filter_string:
指定生产订单: "FMoBillNo='MO000001'"
指定物料: "FMaterialId.FNumber='MAT001'"
推荐 field_keys: FMoBillNo,FMaterialId.FNumber,FMaterialId.FName,FConsumeQty,FCostPrice,FCostAmt
Returns: str: JSON 格式的材料耗用成本列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the return format (JSON string) and form ID, but does not contradict annotations. This provides slight additional context beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with the purpose first, followed by examples and return type. It is relatively concise, though the examples could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers essential usage (form ID, examples, return format) and an output schema likely exists. However, it lacks usage context relative to siblings and does not mention pagination or limitations, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite the input schema having descriptions for parameters, the description adds concrete filter string examples and recommended field keys, which go beyond generic schema descriptions. This significantly aids correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries production material consumption cost and provides the specific form ID CB_MaterialCostQuery. However, it does not explicitly differentiate from siblings like kingdee_query_material_cost or kingdee_query_material_target_cost, which is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It provides filter examples and recommended fields but does not explain selection criteria among similar cost query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_materialsARead-onlyIdempotent
查询物料基础资料(BD_Material)。
常用 filter_string:
按编码前缀: "FNumber like 'HG%'"
按名称模糊: "FName like '%钢板%'"
已审核启用: "FDocumentStatus='C'"
Returns: str: JSON 格式的物料列表,含编码、名称、规格、单位、物料分组
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds value by specifying the return format as a JSON string with fields like code, name, specification, unit, and material group. This aligns with annotations and provides useful behavioral context beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a brief purpose statement, three filter examples, and a return specification. Every sentence adds value without redundancy. It is front-loaded with the core purpose and uses bullet points for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters) and the presence of an output schema (which handles return values), the description covers the essential usage pattern with filter examples. However, it omits details on pagination (start_row, limit) and custom fields (field_keys). The query examples provide a good starting point but not full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema's own descriptions are insufficient. The description partially compensates by illustrating filter_string usage with examples. However, it does not explain the other parameters (field_keys, start_row, limit), which are crucial for customization and pagination. The examples for filter_string are helpful but leave gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries material basic data (BD_Material) with a specific verb '查询' (query) and resource. It distinguishes from sibling query tools like kingdee_query_bills or kingdee_query_inventory by focusing on materials. Examples of filter strings further clarify the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides common filter_string examples, guiding usage through specific filters like code prefix and name fuzzy search. It does not explicitly state when not to use this tool or mention alternatives, but the context of sibling tools implies material-specific queries. This is clear but lacks exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_material_target_costARead-onlyIdempotent
查询物料目标成本单(BD_MatTargetCost)。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定物料: "FMaterialId.FNumber='MAT001'"
推荐 field_keys: FBillNo,FDate,FDocumentStatus,FMaterialId.FNumber,FMaterialId.FName,FTargetCost
Returns: str: JSON 格式的目标成本单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds that the tool returns a JSON-formatted list (effectively a string), and its example filters provide insight into common usage patterns. No behavioral contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and structured with a brief statement of purpose, followed by examples and return type. Every sentence adds value. It could be slightly more organized (e.g., separating purpose and examples), but overall it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (mentioned in context), the description does not need to detail return values. It covers purpose, parameters (via examples), and return format. It could mention pagination or error handling, but for a read-only query tool this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already includes descriptions for each parameter, providing baseline understanding. The description adds value by offering concrete filter_string examples (like 'FDocumentStatus='C'') and recommending specific field_keys, which goes beyond the schema's generic descriptions and clarifies practical usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '查询' (query) and the specific resource '物料目标成本单' (material target cost order), and mentions the form ID 'BD_MatTargetCost'. This distinguishes it from sibling tools like kingdee_query_material_cost, which deal with similar but different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical usage tips through filter string examples and recommended field keys, which helps the agent know how to use the tool effectively. However, it does not explicitly state when to use this tool versus other query tools (e.g., cost calculation vs. cost items), nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_misc_movement_detailARead-onlyIdempotent
查询杂项出入库明细表(STK_MiscMovementDetail)。
用于查看杂项出入库的明细数据,包括其他入库、其他出库等。
常用 filter_string:
指定日期范围: "FBillDate>='2024-01-01' and FBillDate<='2024-12-31'"
指定物料: "FMaterialId.FNumber='MAT001'"
指定仓库: "FStockId.FNumber='WH01'"
推荐 field_keys(默认已包含关键字段): FID,FBillNo,FBillDate,FDocumentStatus,FStockOrgId.FName, FMaterialId.FNumber,FMaterialId.FName,FUnitId.FName,FQty,FPrice,FAmount
Returns: str: JSON 格式的杂项出入库明细列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the description adds no contradictions. It adds that the return is a JSON-formatted list, which is useful but not critical beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for purpose, examples, and recommended fields. It is somewhat verbose due to the code block but remains clear and informative. No unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query tool with pagination and filtering, the description covers the core usage with examples. It does not detail the output schema (though one exists) or explain pagination parameters, but the schema provides defaults. Overall, it is reasonably complete given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the top-level parameter, but nested property descriptions exist in the schema. The description adds value by giving concrete filter_string and field_keys examples. However, it does not explain the required form_id parameter (which should likely be set to 'STK_MiscMovementDetail' based on the table name), potentially causing confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries the miscellaneous movement detail table (STK_MiscMovementDetail) for viewing inbound/outbound details. It uses a specific verb '查询' (query) and resource, distinguishing it from sibling query tools like kingdee_query_bills or kingdee_query_inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete filter_string examples and recommended field_keys, helping the agent construct queries. However, it does not explicitly state when to use this tool vs. other query tools (e.g., for general bills vs. misc movement), though the table name makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_mrp_resultBRead-only
查询 MRP 运算结果(PLAN_MRPResult)。
来自销售订单/销售预测/库存不足等需求,经 MRP 运算生成的计划订单建议。 可下推生成采购申请/生产订单。
Returns: str: JSON 数组,每条含 FBillNo/FMaterialId/FSrcBillNo/FPurchaseQty 等字段。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so description's addition of downstream implications is helpful but not critical. No mention of rate limits, auth, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three clear sentences, each serving a distinct purpose: resource identification, business context, and return format. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with annotations and output schema mentioned, the description covers the data's origin, structure, and use. Minor lack of pagination or error details but not critical given low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema properties have descriptions, the context signals indicate 0% coverage, meaning the description must compensate. However, the description adds no parameter-level guidance beyond what is in the schema, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb '查询' and resource 'MRP运算结果', providing business context of origin and downstream use. However, it does not explicitly differentiate from similar query tools like kingdee_query_production_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage context (MRP results from various demand sources) but no explicit when-to-use or when-not-to-use guidance, nor alternatives among many sibling query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_number_ruleARead-onlyIdempotent
查询金蝶系统中的单据编号规则列表。
常用 filter_string:
指定单据类型: "FObjectType='SAL_SaleOrder'"
指定规则名: "FNumberRuleId.FNumber='NR001'"
推荐 field_keys: FNumberRuleId,FName,FNumber,FObjectType,FPrefix,FSequenceLength,FDateFormat
Returns: str: JSON 格式的单据编号规则列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds only that it returns a JSON string, with no additional behavioral traits like pagination or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with purpose stated first, followed by bulleted examples. No filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential usage with examples and hints, and output schema exists to detail returns. Missing explanation of pagination, but acceptable for a simple query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds value for filter_string and field_keys with examples and recommendations, but does not mention start_row or limit. Schema already describes these partially, so overall good complement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries a list of document number rules in Kingdee, with examples of filter strings and recommended fields, distinguishing it from other query tools like kingdee_query_bills or kingdee_query_sale_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical usage guidance via common filter_string examples and recommended field_keys, but lacks explicit when-to-use or when-not-to-use instructions relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_operation_logsARead-onlyIdempotent
查询金蝶云星空的上机操作日志(BOS_OperateLog)。
记录用户在系统中的所有操作:登录、登出、进入业务对象、业务操作等。 用于安全审计、故障排查、操作追溯。
推荐场景:
排查某张单据是谁在什么时候操作的
安全审计:检查异常登录或批量操作
合规要求:追溯敏感操作记录
返回字段说明:
FDATETIME: 操作时间
FUSERID: 操作用户
FCOMPUTERNAME: 机器名称
FCLIENTIP: 客户端IP
FENVIRONMENT: 操作场景(0=登入系统, 1=进入业务对象, 3=业务操作, 4=登出系统)
FOPERATENAME: 操作名称(登录/单据查询/批量保存等)
FDESCRIPTION: 操作描述
FInterId: 对象内码(关联单据号)
FTimeConsuming: 耗时(毫秒)
FClientType: 客户端类型
Returns: str: JSON 格式的操作日志列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns a JSON string and lists output fields, but does not disclose additional behavioral details like pagination limits or rate limits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, recommended scenarios, and a detailed list of return fields. It is concise without unnecessary text. A slight improvement could be to integrate parameter guidance, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (many parameters, pagination, output fields), the description covers the key aspects: purpose, usage scenarios, and return value format. The input schema covers parameter details, but the description could be more complete by mentioning pagination or filter capabilities. Overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the description does not repeat or elaborate on the input schema parameters. The description focuses on output fields and usage scenarios, not on how to use the input parameters. The schema itself provides detailed parameter descriptions, but the description should compensate for low coverage. It does not, so this dimension scores low.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'query' and the resource 'operation logs' (BOS_OperateLog), and explicitly describes the contents. It distinguishes itself from sibling query tools by focusing on operation logs, not specific bill types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit recommended scenarios (security audit, fault diagnosis, compliance). It does not explicitly state when not to use it, but the list of scenarios provides clear guidance. Sibling tools are for specific entities, so this tool's general nature is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_outsource_ordersARead-onlyIdempotent
查询委外加工订单(SUB_SubReqOrder)列表。
委外加工订单记录外协生产任务,包含 CP 测试、封装、FT 成品测试等工序 的委托加工情况,是 WIP 在制量、逾期分析、回货预测的核心数据来源。
常用 filter_string:
在制(未结案): "FDocumentStatus='C' and FStatus not in ('6','7')"(默认)
指定供应商: "FSupplierId.FName like '%华力%'"
逾期未完工: "FPlanFinishDate<GETDATE() and FStatus not in ('3','6','7')"
30 天内到期: "FPlanFinishDate>=GETDATE() and FPlanFinishDate<=DATEADD(day,30,GETDATE())"
指定批次: "FLot.FNumber='AP5E047'"
指定产品型号: "FMaterialId.FSpecification='APT32F004B'"
已完工待入库: "FStatus='3'"
关键字段说明:
FQty: 委外订单总数量(颗)
FStockInQty: 已入库数量(已完工回厂的数量)
FNoStockInQty: 未入库在制量(FQty - FStockInQty,可为负表示超收)
FStatus: 执行状态(1=开工,3=完工,6=结案,7=结算)
FPlanFinishDate:计划完工日(逾期判断基准)
FPurOrderNo: 关联采购订单号(CP 委外专用,可反查晶圆来源采购单)
FLot.FNumber: 批次号(WIP 追溯用)
F_XTR_Qty: 晶圆辅单位片数(自定义扩展字段,如需可追加到 field_keys)
💡 REMEMBER: 若报"字段不存在",用 kingdee_get_fields('SUB_SubReqOrder') 确认该账套可用字段
Returns: str: JSON,含 count / has_more / data 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior: the default filter is already applied only when none is supplied, results expose count / has_more / data, and a failure path is documented (if a field does not exist, call kingdee_get_fields('SUB_SubReqOrder') to confirm). It does not state whether field_keys rejects unknown fields or how pagination interacts with has_more, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The long bulleted structure is front-loaded with a scope statement, then filter presets, then field keys, with no filler sentences. It is denser than strictly necessary, and the returns note duplicates what the output schema already provides, but every bullet adds information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query tool with a rich filter DSL as its main parameter, the description supplies the domain vocabulary, the status code table, field-level meanings, a default that affects results, and a fallback when a field is missing. An output schema exists, so return values need not be explained further; nothing an agent needs in order to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description carries the burden, and it does so well: filter_string is explained through seven worked examples plus status-code mapping (1=开工, 3=完工, 6=结案, 7=结算), and field_keys is tied to field meanings such as FQty, FStockInQty, FNoStockInQty, FLot.FNumber, and the custom F_XTR_Qty. limit and start_row are left entirely to the schema, and the max-100 pagination interplay is never explained, so it is not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('查询委外加工订单(SUB_SubReqOrder)列表') and immediately explains the business scope: outsourced CP testing, packaging, FT final test, and its role as the source for WIP, overdue, and return-forecast analysis. This easily distinguishes it from generic siblings like kingdee_query_bills or kingdee_query_purchase_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It enumerates concrete usage scenarios via filter presets: default in-progress orders, by supplier, overdue and not completed, due within 30 days, by lot, by model, and completed pending stock-in. However, it never explicitly states when to prefer this tool over the sibling kingdee_query_bills or how it relates to kingdee_query_purchase_order_progress, so the alternative-routing guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_partnersARead-onlyIdempotent
查询客户(BD_Customer)或供应商(BD_Supplier)基础资料。
partner_type 取值:BD_Customer 或 BD_Supplier
Returns: str: JSON 格式的客户/供应商列表,含编码、名称、简称、联系人、电话
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by stating the return format is JSON with specific fields (e.g., encoding, name). Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so safety is clear. The description does not contradict annotations and provides useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (5 lines) and includes essential information: purpose, partner_type values, and return format. It is well-structured and front-loaded with the main action. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (not shown) and annotations cover safety and idempotency, the description is fairly complete. It mentions return fields and includes the two partner types. However, it could mention pagination parameters (start_row, limit) and that filter_string allows filtering, but these are in the schema. Overall, it adequately covers core functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all parameters, including partner_type and field_keys. The description only reiterates partner_type values and does not add new information for other parameters. With high schema description coverage, the baseline is 3, and the description does not improve it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries customer (BD_Customer) or supplier (BD_Supplier) basic data, specifying the two partner types and listing return fields (code, name, short name, contact, phone). This distinguishes it from other query tools among siblings, such as kingdee_query_materials or kingdee_query_bills, making the purpose specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as other query tools for different entities (e.g., kingdee_query_materials, kingdee_query_bills). It does not mention prerequisites, context of use, or scenarios where this tool is appropriate or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_pending_approvalsARead-onlyIdempotent
查询待审批的单据列表。
查询当前处于审批中状态(已提交、待审核)的单据。
Returns: str: JSON 格式的待审批单据列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds no extra behavioral details beyond what annotations provide. Adequate but does not leverage the opportunity to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no superfluous text. Every sentence earns its place. Very concise and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists and description notes return type (JSON string). With good annotations covering safety and idempotency, the description is adequate for a simple query tool. Minor missing details about pagination or error handling prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not mention any parameters or their meaning. Although the input schema itself has parameter descriptions, the tool description fails to add context beyond that, which is a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states '查询待审批的单据列表' (query list of pending approval documents) and specifies the scope as documents currently in approval status. This distinguishes from sibling query tools like kingdee_query_bills which likely query general bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Does not mention prerequisites, when not to use, or recommended contexts. Given many sibling query tools, this omission hinders correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_permissionARead-onlyIdempotent
查询金蝶系统中的权限列表。
常用 filter_string:
指定角色: "FRoleId.FNumber='ROLE001'"
指定对象类型: "FObjectType='BD_Material'"
推荐 field_keys: FPermissionId,FName,FNumber,FObjectType,FObjectName,FIsAllow
Returns: str: JSON 格式的权限列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent behavior. Description adds that it returns JSON but does not explain pagination, potential large result sets, or error scenarios beyond what schema hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one-line purpose, bulleted examples, and return line. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main query intent and filter usage; mentions return format; pagination details are left to schema; missing returned JSON structure but output schema likely covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds concrete example filter strings and recommended field keys, which enrich the schema definitions that already have basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries a permission list in Kingdee system, with specific examples of filter usage, differentiating it from sibling query tools for other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage examples for filter_string but no explicit guidance on when to use this tool vs alternatives, nor any when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_permission_changesARead-onlyIdempotent
查询金蝶云星空的权限变更记录。
记录用户权限的授予、撤销、修改操作。 用于安全审计、合规检查、权限追溯。
推荐场景:
安全审计:谁在什么时候被授予/撤销了什么权限
合规要求:保留权限变更的审计轨迹
问题排查:某用户无法访问某功能的原因
注意:金蝶权限数据可能存储在多个表单中, 如 SEC_Permission(权限记录)、SEC_UserRole(用户角色关系)等。 如查询无结果,请用 kingdee_get_fields 查看实际可用字段。
Returns: str: JSON 格式的权限变更列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral context by noting that permission data may be split across multiple Kingdee forms and that empty results should trigger inspection with kingdee_get_fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then uses a short recommended-scenarios list plus a fallback note. It is efficient and readable, with only minor verbosity in the explanatory scenarios.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with annotations and an output schema, the description provides enough context to call it correctly. It covers purpose, use cases, and a data-source caveat, though it could more explicitly address relationship to sibling permission and audit tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The nested schema documents fields such as action, date ranges, user_name, and filter_string, but the description itself adds little parameter-level guidance. It does not explain filtering syntax, pagination behavior, or how action/object_type values interact with the query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: querying permission change records in Kingdee Cloud. It clarifies that these are grant/revoke/modify operations, which distinguishes it from a general permission lookup or audit log query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear recommended scenarios: security audit, compliance trail, and troubleshooting. It also provides a fallback when no results are found, pointing to kingdee_get_fields, though it does not explicitly contrast with sibling tools such as kingdee_query_permission or kingdee_query_audit_log.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_production_ordersBRead-onlyIdempotent
查询生产订单(PRD_MO)列表。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定日期: "FDate>='2024-01-01'"
进行中: "FStatus='2'" (1=计划,2=确认,3=投料,4=汇报,5=入库)
指定物料: "FMaterialId.FNumber='MAT001'"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FMaterialId.FName,FQty,FPlanStartDate,FPlanFinishDate,FStatus
Returns: str: JSON 格式的生产订单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds value by specifying the return format (JSON string) and providing filter examples, but it omits details on pagination, limits, and error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one purpose line, bulleted examples, and return type. It is well-structured and front-loaded with key information, though it could be more organized by explicitly mapping parameters to examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers purpose, filter examples, and recommended fields. However, it fails to resolve the ambiguity of the form_id parameter (whether fixed or user-supplied) and does not detail the return JSON structure, leaving gaps for a comprehensive understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the top-level 'params' parameter, but the schema itself includes descriptions for nested properties. The description adds example values for filter_string and field_keys, partially compensating, yet it does not explain parameters like form_id, order_string, start_row, or limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries production order (PRD_MO) list, with specific verb '查询' and resource '生产订单'. It provides common filter strings and recommended fields, distinguishing it from generic query tools like kingdee_query_bills by specifying the form type PRD_MO.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers practical filter and field key examples, aiding effective use, but lacks explicit guidance on when to use this tool versus siblings (e.g., kingdee_query_bills) and does not clarify whether the form_id parameter should be set to PRD_MO or is hardcoded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_production_pick_materialsARead-onlyIdempotent
查询生产领料单(PRD_PickMtrl)列表。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定生产订单: "FMoBillNo='MO000001'"
指定仓库: "FStockId.FNumber='CK001'"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FMoBillNo,FMaterialId.FName,FPickQty,FStockId.FName
Returns: str: JSON 格式的生产领料单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds minimal value beyond stating it returns a JSON list and explaining filter_string syntax. No additional behavioral traits (e.g., permissions, side effects) are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and includes helpful code-like examples. It is reasonably concise, though the list of filter_string examples and field_keys could be more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations and schema, the description is adequate for a basic query tool. It specifies the form ID and return format, but does not mention pagination defaults (e.g., limit=20) or that filter_string and field_keys are optional, though the schema covers these.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with descriptions, so baseline is 3. The tool description adds examples for filter_string and recommended field_keys, but does not explain other parameters like order_string, start_row, or limit beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries production pick materials (PRD_PickMtrl) list, providing examples of filter_string and recommended field_keys. It is distinct from sibling query tools like kingdee_query_bills or kingdee_query_production_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete examples of filter_string for common scenarios (approved, specific order, specific warehouse) and recommends field_keys, but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_production_planCRead-only
查询生产计划单(PLAN_ProductionPlan)。
生产计划单是 MRP 运算后手工调整的计划单据,可直接下推生成生产订单。
Returns: str: JSON 数组。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond annotations. It states the return type (JSON array) and explains the data's origin, but does not disclose details like pagination, filtering behavior, or authentication needs. Annotations already indicate read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences plus returns line) and front-loads the purpose. Every sentence is relevant, but it could include more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple filter parameters, output as array), the description is incomplete. It lacks guidance on usage and parameter semantics. The existing annotations and output schema mitigate some gaps, but the description should do more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any parameters. Schema coverage for the top-level 'params' object is 0%, and the nested properties have schema descriptions but lack context on usage or syntax. The description should add meaning beyond the schema, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '查询生产计划单' (query production plan), which is a specific verb-resource pair. The annotation title also confirms this. However, it does not differentiate from sibling query tools like kingdee_query_production_orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It only describes the data context (MRP, push to orders) but lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_production_reportBRead-only
查询生产汇报单(PRD_MOReport)。
生产汇报记录工序完成数量/工时/良品率等信息,是生产入库的提前工序。
Returns: str: JSON 数组,含 FBillNo/FMOId/FMaterialId/FReportQty/FHourQty 等。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds useful context about the data content (工序完成数量/工时/良品率) and return fields, but does not disclose additional behavioral traits such as pagination, rate limits, or performance. This adds some value beyond annotations, hence a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two lines for purpose and context, plus a return format line. Every sentence adds value. However, it could be slightly more structured, e.g., explicitly listing parameters, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown) and return fields listed, the description lacks guidance on constructing the filter_string or other parameters. For a tool with three parameters and 0% schema coverage, the description should compensate but does not. The return fields help but incomplete elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (no parameter descriptions in schema), and the tool description does not mention any parameters or provide usage guidance for filter_string, top, or orderby. The agent must rely solely on the schema, which lacks descriptions. This is a critical gap for a query tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '查询' (query) and the resource '生产汇报单(PRD_MOReport)', distinguishing it from sibling tools like kingdee_query_production_orders and kingdee_query_production_plan. It also explains the report's content and its role as a preliminary step for production warehousing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It mentions the report is a prerequisite for production warehousing, but no when-not-to-use or direct comparisons to siblings. The agent must infer usage from the tool name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_production_stock_inARead-onlyIdempotent
查询生产入库单(PRD_Instock)列表。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定生产订单: "FMoBillNo='MO000001'"
指定仓库: "FStockId.FNumber='CK001'"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FMoBillNo,FMaterialId.FName,FInQty,FStockId.FName
Returns: str: JSON 格式的生产入库单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, non-destructive, idempotent behavior. The description adds minimal behavioral insight beyond return format (JSON) and example filters. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, uses bullet points for examples, and clearly states the return type. Every sentence serves a purpose, and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple query with annotations and output schema, the description sufficiently covers purpose, examples, and return format. No additional context needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has descriptions for most parameters (high coverage). The description adds value by providing recommended field_keys and filter examples, which help the agent form correct queries beyond bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries production stock-in documents (PRD_Instock) and provides specific filter examples and recommended fields, distinguishing it from generic query tools like kingdee_query_bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete filter_string and field_keys examples, making usage context clear. However, it does not explicitly state when not to use it or compare to sibling query tools, though the specialization is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_product_standard_costBRead-onlyIdempotent
查询产品标准成本(STD_ProductCostQuery)。
常用 filter_string:
指定物料: "FMaterialId.FNumber='MAT001'"
指定成本版本: "FCostVersionId.FNumber='STD01'"
推荐 field_keys: FMaterialId.FNumber,FMaterialId.FName,FUnitId.FName,FStdCost,FMaterialCost,FLabourCost,FFeeCost
Returns: str: JSON 格式的产品标准成本列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns a JSON list and mentions the function name, but does not contradict annotations. It provides adequate but not deep behavioral context beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three lines) and front-loaded with the main purpose. It includes the function name and practical examples without unnecessary verbosity. No wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a read-only query with comprehensive annotations and an output schema, the description covers the purpose, common usage patterns, and return type. It does not detail error handling or pagination, but these are secondary for a simple query; completeness is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides example filter_string and field_keys values, adding some meaning beyond the schema. However, the schema already has comprehensive descriptions for all parameters (though context reports 0% coverage, likely meaning description does not systematically cover parameters). Baseline 3 is appropriate as schema covers parameters and examples add minimal extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries product standard cost (查询产品标准成本) and provides the Kingdee function name. It uses a specific verb and resource, but does not explicitly differentiate from sibling cost query tools, though the name itself is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives examples of common filter_string and field_keys, implying typical usage, but lacks explicit guidance on when to use this tool versus alternative cost-related queries (e.g., material cost, finished product cost). No when-not-to-use or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_purchase_inquiryARead-onlyIdempotent
查洵采购询价单(SVM_InquiryBill/RFQ)列表。
采购询价单(Request for Quotation)用于向供应商询价,收集报价信息。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定供应商: "FSupplierId.FNumber='S001'"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FSupplierId.FName,FMaterialId.FName,FPrice
Returns: str: JSON 格式的询价单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety. The description adds that the return is JSON, but does not disclose pagination limits, error handling, or the effect of invalid inputs. Value added is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: purpose first, then explanation, filter examples, field recommendations, and return type. No extraneous information, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the description covers key aspects: what it does, how to filter, what fields to request, and the return format. It lacks details on pagination defaults or error conditions, which are partially covered by the schema. Overall, fairly complete for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema by providing specific, context-aware examples for filter_string and field_keys. Schema descriptions are generic, but the tool description gives practical, domain-specific values that help an agent select correct parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries the purchase inquiry list (SVM_InquiryBill/RFQ), explaining what RFQ is. It distinguishes from sibling tools like kingdee_query_purchase_orders and kingdee_query_purchase_requisitions by specifying the exact entity type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete filter_string examples (e.g., '已审核' and '指定供应商') and recommended field_keys, offering practical usage guidance. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_purchase_order_progressARead-onlyIdempotent
查询采购订单行明细及执行进度(含累计收料/入库数量)。
与 kingdee_query_purchase_orders 的区别:
本工具查询【表体分录级】字段,返回每行物料的详细执行情况
默认返回已审核单据,可通过 filter_string 过滤
返回的关键字段(demo 账套实测):
FBillNo: 单据编号
FMaterialId.FNumber / FMaterialId.FName: 物料编码/名称
FQty: 订单数量
FReceiveQty: 累计收料数量
FStockInQty: 累计入库数量
FPrice: 单价(不含税)
FTaxPrice: 含税单价
FAllAmount: 价税合计
以下字段需启用供应链模块后才存在(demo 环境可能不存在):
FLinkQty: 关联数量(=累计收料数量+累计入库数量)
FBusinessClose: 业务关闭状态(A=正常,B=业务关闭)
FFreezeStatus: 冻结状态(A=正常,B=冻结)
FTerminateStatus: 终止状态(A=正常,B=终止)
FDlyCntl_Low / FDlyCntl_High: 交货下限/上限
业务关闭规则(需启用供应链):
累计入库数量 >= 交货下限时,该行自动【业务关闭】
累计入库数量 < 交货下限时,自动【业务反关闭】
Returns: str: JSON 格式的采购订单执行进度列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral context beyond annotations: return format (JSON), demo-verified fields, conditional field presence, and business close rules. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is lengthy but well-structured with bullet points and sections. Some redundancy (e.g., listing all fields might be omitted). Could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations providing safety info and output schema implied, the description covers return fields, conditional behavior, and business rules. It is sufficiently complete for an AI agent to understand the tool's output and constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description only mentions the default for filter_string. Does not explain start_row or limit parameters. The description adds minimal value over the schema for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it queries purchase order line details and execution progress, distinguishing from sibling tool kingdee_query_purchase_orders by specifying line-level fields. The verb 'query' and resource 'purchase order progress' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly contrasts with a sibling tool, notes default filter for audited documents, and explains field availability depends on supply chain module. Does not state when not to use, but provides adequate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_purchase_ordersARead-onlyIdempotent
查询采购订单(PUR_PurchaseOrder)列表。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定供应商: "FSupplierId.FNumber='S001'"
指定日期: "FDate>='2024-01-01' and FDate<='2024-12-31'"
未关闭: "FCloseStatus='A'"
业务正常: "FBusinessClose='A'"
推荐 field_keys(默认已包含关键执行字段): FID,FBillNo,FDate,FDocumentStatus,FSupplierId.FName,FPurchaseDeptId.FName, FTaxAmount,FAllAmount,FReceiveQty,FStockInQty
注:FTotalAmount/FLinkQty/FBusinessClose 等字段在 demo 环境可能不存在, 如需关联数量,请用 FReceiveQty + FStockInQty 代替,或用 kingdee_get_fields 确认可用字段
关联数量业务规则:
关联数量 = 累计收料数量 + 累计入库数量
关联数量 >= 订单数量时,采购订单无法下推收料单/入库单
勾选控制交货数量时,关联数量 >= 交货下限时无法下推
Returns: str: JSON 格式的采购订单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. The description adds context about demo environment limitations, business rules for linked quantity, and return format, beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and efficiently organized with bullet points for filters and field keys. It is concise but includes necessary examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description covers essential aspects: common filters, recommended fields, demo caveats, and business rules. It is complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema descriptions exist, the description adds practical examples for filter_string and field_keys, and explains the business rule, which adds meaning beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries purchase order list (PUR_PurchaseOrder) and provides detailed filter examples and field keys, making the specific resource and action unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly differentiate from siblings like kingdee_query_bills or kingdee_query_purchase_order_progress. It implies usage by providing typical filters, but lacks when-to-use or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_purchase_requisitionsARead-onlyIdempotent
查询采购申请单(PUR_Requisition)列表。
采购申请单是采购流程的起点,用于向采购部门提出物料或服务采购需求。 申请单可下推生成采购订单、采购询价单等。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定申请人: "FApplicantId.FNumber='EMP001'"
指定申请部门: "FRequestDeptId.FNumber='D001'"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FApplicantId.FName,FRequestDeptId.FName,FTotalAmount
Returns: str: JSON 格式的采购申请单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds that it returns JSON but does not disclose additional behaviors like pagination limits, rate limiting, or data freshness. It is consistent with annotations, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and uses bullet points for examples. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality, return format, and typical usage patterns. It does not explain pagination behavior or form_id specifically for this tool, but the output schema likely provides structure. Adequate for an agent with domain knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides concrete examples for filter_string and field_keys, adding practical value beyond the schema descriptions. However, the schema already defines each parameter, so the added semantics are supplementary rather than essential.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a list of purchase requisitions (PUR_Requisition), explicitly naming the resource and providing context about its role in procurement. It distinguishes from siblings like kingdee_query_purchase_orders by focusing on requisitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides examples of filter_string usage but does not discuss when to use this tool versus other query tools (e.g., purchase orders, sales orders). It lacks explicit guidance on alternatives or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_quality_inspectionsARead-onlyIdempotent
查洵来料检验单(QIS_InspectBill/IQC)列表。
来料检验单用于对采购物料进行质量检验,判断是否允许入库。
常用 filter_string:
已检验: "FDocumentStatus='C'"
检验结果-合格: "FResult='1'" 或 "FPassQty>0"
检验结果-不合格: "FFailQty>0"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FSupplierId.FName,FMaterialId.FName,FPassQty,FFailQty,FInspectTypeId.FName
Returns: str: JSON 格式的来料检验单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description confirms it is a list query, adding minimal behavioral insight beyond annotations. It does not contradict annotations, but offers no additional details about behavior (e.g., rate limits, data freshness).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a concise first paragraph stating the purpose and a second paragraph with examples. It is front-loaded and efficient, though the examples could be more compact. No unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose and provides useful query patterns, but it lacks details about the output structure beyond 'JSON format'. Given that an output schema exists, the description is somewhat complete but could offer more context about the returned fields or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 0%, the description enriches the schema by providing concrete examples of filter_string values and recommended field_keys. This adds significant practical meaning beyond the schema definitions (e.g., showing how to filter by result or pass/fail quantities).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a list of incoming material inspection orders (QIS_InspectBill/IQC). It specifies the verb 'query' and the resource 'quality inspections', distinguishing it from other query siblings like kingdee_query_bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful filter_string examples for common statuses (inspected, passed, failed) and recommended field_keys, which helps in constructing queries. However, it does not explicitly state when to prefer this tool over similar query tools (e.g., kingdee_query_bills) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_receiptsARead-onlyIdempotent
查询应收单(AR_Receivable)列表,支持按客户、日期、核销状态、打开状态过滤。
应收单记录客户应收账款,包含应收金额、已核销金额、核销状态等信息, 是营收、回款、应收余额、票据占比等财务指标的核心数据来源。
常用 filter_string:
已审核: "FDocumentStatus='C'"(默认)
指定客户: "FCUSTOMERID.FNumber='C001'"
指定月份: "FDATE>='2026-01-01' and FDATE<='2026-01-31'"
未核销: "FWRITTENOFFSTATUS='A'"
未关闭: "FOPENSTATUS='A'"
期初数据: "FISINIT=true"(初始化单)或 "FISINIT=false"(业务单)
关键字段说明:
FALLAMOUNTFOR: 应收总金额(原币含税),财务核心指标
FNOTAXAMOUNTFOR: 应收不含税金额(原币),用于综合毛利率计算
FRELATEHADPAYAMOUNT:已核销金额
FWRITTENOFFSTATUS: 核销状态(A=未核销,B=部分核销,C=完全核销)
FOPENSTATUS: 打开状态(A=未关闭,B=已关闭,C=部分关闭)
FENDDATE_H: 到期日
FISINIT: 是否为初始化单据(期初数据)
⚠️ 不同金蝶账套字段名可能不同(如 FCUSTOMERID 可能为 FCustId、FDate 可能为 FDATE), 先调用 kingdee_get_fields('AR_Receivable') 确认该账套可用字段。
Returns: str: JSON,含 count / has_more / data 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description adds genuinely useful behavior: the default filter silently returns only audited bills (FDocumentStatus='C'), field names vary per 账套, and the response is JSON with count/has_more/data. It does not disclose pagination mechanics (limit ≤100, start_row) or default ordering. Minor inconsistency: the annotation title says 收款单 while the description says 应收单.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and default scope are front-loaded, then bulleted filter recipes and a field dictionary – each block earns its place. There is some duplication: the 账套 field-name warning appears in both the body and inside the schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only filtered query with an output schema present, the description covers purpose, default scope, filter syntax, field semantics, response envelope (count/has_more/data), and the required metadata pre-check. An agent has everything it needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although structured coverage is low, the description richly documents filter_string syntax with copy-pasteable examples and explains the field keys (FALLAMOUNTFOR, FNOTAXAMOUNTFOR, FWRITTENOFFSTATUS A/B/C, FOPENSTATUS A/B/C, FISINIT). The limit and start_row pagination parameters are still undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (查询) plus resource (应收单 / AR_Receivable) and pins the underlying form, immediately distinguishing it from generic siblings like kingdee_query_bills. It also explains what the record contains and which financial metrics it feeds, so an agent knows exactly what data shape to expect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use recipes (audited-only default, customer, month range, unwritten-off, open, initial-period) and preconditions ('先调用 kingdee_get_fields(\'AR_Receivable\') 确认该账套可用字段'). It stops short of naming which sibling query tool to use when the user wants receivables vs. receipts vs. generic bills.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_reportARead-onlyIdempotent
通过金蝶 WebAPI GetSysReportData(查询报表数据) 查询任意总账/财务报表。
端点:Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.GetSysReportData.common.kdsvc (实测确认:formid 必须作为独立 HTTP 表单字段、data 为内层参数的 JSON 字符串。 此前"表单标识为空"的根因是 formid 被嵌进了 data JSON 对象;KDSReportAPIService 端点实测也一律 Unknown Error,不可用。)
请求体为 HTTP 双字段:formid = 报表标识;data = JSON 字符串(即本工具 params.data)。 model 典型结构:FieldKeys(返回字段) + Model(过滤条件) + StartRow/Limit(分页)。 与单据查询(ExecuteBillQuery)不同,报表分页用 StartRow/Limit,不是 PageIndex/PageSize; 账簿用 FACCTBOOKID.FNumber(按编码,如 "001");期间用 FSTARTYEAR/FSTARTPERIOD/FENDYEAR/FENDPERIOD,层级用 FBALANCELEVEL。 ⚠️ FieldKeys 必须是报表真实列 Key——猜的列名会触发服务端 totalWidth 渲染错误; FBALANCELEVEL=0(全部级次)时必须配 FSHOWFULLNAME=true,否则 AccountBalanceStatement.UpdateAcctName 会因 PadLeft(-N) 抛 "totalWidth 要求非负数"。 💡 0 行结果通常是该账簿/期间 T_GL_BALANCE 本身无数据,并非查询失败 (book '001' 金蝶蓝海科技只有 2020 年演示数据,2026 年返回 0 行属于正常)。
已实测确认的报表 formId(财务会计 → 总账):
科目余额表 = GL_RPT_AccountBalance
总账账龄分析表 = GL_AgingSchedule(注意:无 RPT_ 前缀) 其余报表 formId 需在 BOS/ApiDoc 逐张查证(核算维度余额表、数量金额总账、日报表、 多账簿系列、试算平衡表、现金流量表、现金流量查询、报表项目 KDS_RptItem 等)。
params.data(model)权威结构——科目余额表(金蝶开发者社区官方案例 + 2026-08-05 实测 book '001' 金蝶蓝海科技 → 2020 年 2 月 期初/本期/本年累计/期末数据完整 72 行): {"FieldKeys":"FBALANCEID,FBALANCENAME,FACCTTYPE,FACCTGROUP,FCyName," "FBEGINDEBIT,FBEGINCREDIT,FDEBIT,FCREDIT," "FYTDDEBIT,FYTDCREDIT,FENDDEBIT,FENDCREDIT", "SchemeId":"","StartRow":0,"Limit":10, "IsVerifyBaseDataField":"true","FilterString":[], "Model":{"FACCTBOOKID":{"FNumber":"001"},"FCURRENCY":"1", "FSTARTYEAR":2020,"FSTARTPERIOD":2,"FENDYEAR":2020,"FENDPERIOD":2, "FBALANCELEVEL":1,"FSHOWDETAIL":false,"FFORBIDBALANCE":true, "FBALANCEZERO":true,"FPERIODNOBALANCE":true,"FYEARNOBALANCE":true, "FSHOWFULLNAME":true}}
返回:金蝶原始 JSON(含报表数据 Rows),前端/调用方按需解析。
Raises/Returns: str: JSON(成功为报表数据;失败为错误 JSON)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only, idempotent and non-destructive, and the description adds substantial operational context beyond that: the formid-must-be-a-separate-form-field root cause, the totalWidth/PadLeft crash when FBALANCELEVEL=0 without FSHOWFULLNAME, the StartRow/Limit vs PageIndex/PageSize distinction, and the fact that a 0-row result is normal rather than a failure. These are non-obvious failure modes an agent could not infer elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb, endpoint and the key constraint, then structured into endpoint notes, verified formIds, and a worked model example. It loses a point because the full example model payload is duplicated almost verbatim inside the schema's data description, so some sentences do not earn their place twice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, free-form JSON-passthrough report API with one opaque parameter, the description supplies the endpoint contract, verified ids, a working payload, the pagination convention and the known server-side errors. An output schema exists, so the brief return-value note is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With the reported 0% schema coverage on the declared parameter, the description carries the full burden and does so: it spells out the model structure (FieldKeys / Model / StartRow / Limit), names the filter field families (FACCTBOOKID.FNumber, FSTARTYEAR/FSTARTPERIOD/FENDYEAR/FENDPERIOD, FBALANCELEVEL), and annotates the field-name and level pitfalls. It also documents the form_id enumeration, including the no-RPT_-prefix exception.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: queries any GL/financial report via GetSysReportData, and names the exact endpoint. It explicitly contrasts itself with document query (ExecuteBillQuery) and with the unusable KDSReportAPIService, so an agent can separate it from kingdee_query_bills and friends without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use context (report queries vs. document queries), lists the two verified formIds with the exact selectors, and warns that most other report formIds must be verified in BOS/ApiDoc first. It falls just short of a 5 because it does not name the sibling tool to use for the document-query case, referencing only the underlying ExecuteBillQuery API.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_roleARead-onlyIdempotent
查询金蝶系统中的角色列表。
常用 filter_string:
指定角色名: "FRoleID.FNumber='admin'"
启用状态: "FIsActive=1"
推荐 field_keys: FRoleID,FName,FNumber,FIsActive,FCreateDate,FDescription
Returns: str: JSON 格式的角色列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that the tool returns a JSON formatted role list, but does not disclose additional behavioral traits beyond what annotations provide. For a read-only tool with good annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences for purpose and examples, plus a note on return type. Every sentence adds value, and it is front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with 4 parameters, and an output schema exists. The description covers the essential usage patterns (filtering, field selection) and states the return format. It does not explain pagination (start_row, limit) or error behavior, but these are partially covered by the schema. Overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given schema description coverage is 0% per context (though schema actually has descriptions like '过滤条件'), the description compensates by providing concrete examples for filter_string and recommending field_keys. This adds significant meaning beyond the bare schema, especially for filter syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '查询金蝶系统中的角色列表' (query the role list in Kingdee system). This specifies the verb (query) and resource (role list), distinguishing it from sibling query tools for other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical usage examples for filter_string and recommended field_keys, aiding parameter usage. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., other query tools for different entities). The purpose is clear from the name, but no direct comparison or usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_sale_ordersARead-onlyIdempotent
查询销售订单(SAL_SaleOrder)列表。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定客户: "FCustId.FNumber='C001'"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FCustId.FName,FSalesOrgId.FName,FTotalAmount
Returns: str: JSON 格式的销售订单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's role is lighter. It adds context by stating the return format (JSON) and providing filter/field examples, but does not disclose additional behavioral traits beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: first a clear statement of purpose, then practical filter and field examples, then the return type. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity of the query tool and the presence of an output schema, the description covers essential aspects. It might be slightly improved by mentioning pagination or sorting, but current content is sufficient for typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all parameters, but the tool's description adds value by showing concrete examples for 'filter_string' and 'field_keys', complementing the schema. This helps the agent understand typical usage patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state the tool queries sale orders (SAL_SaleOrder) list, using specific verb+resource. The mention of the form ID distinguishes it from sibling query tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical examples of common filter strings and recommended field keys, aiding correct usage. However, it does not explicitly compare with alternative query tools or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_sale_quotationsARead-onlyIdempotent
查询销售报价单(SAL_Quotation)列表。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定客户: "FCUSTID.FNumber='C001'"
未失效: "FExpiryDate>='2026-01-01'"
推荐 field_keys(默认已包含关键字段): FID,FBillNo,FDate,FDocumentStatus,FCUSTID.FName,FSalerId.FName,FExpiryDate
注(本环境为二开定制,与标准字段不同):
销售员字段为 FSalerId(非标准 FSalesmanId),写 FSalesmanId 会 500
主表无 FTotalAmount(金额在分录 FQUOTATIONFIN 内),如需金额请用 kingdee_query_bills 指定分录字段,或用 kingdee_get_fields 确认可用字段
Returns: str: JSON 格式的销售报价单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important environment-specific behavior: the salesperson field is FSalerId rather than standard FSalesmanId, and using FSalesmanId causes a 500 error. It also explains that FTotalAmount is absent from the main table and that amounts live in the entry table, which is valuable beyond the read-only annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by practical filter examples, recommended fields, and targeted caveats. The bullet structure is efficient and every section adds actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists and annotations cover the safety profile, so the description does not need to explain return values or read-only semantics. It is nearly complete for a query tool, with the main remaining gap being pagination and ordering guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description must carry parameter meaning. It supplies useful filter_string examples and recommended field_keys with the exact field names, plus a critical warning about FSalerId, but it does not explain limit, start_row, or order_string behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: query sale quotations (SAL_Quotation) list. It clearly distinguishes the tool from generic bill querying by noting that amount queries require kingdee_query_bills or kingdee_get_fields, and it names the exact form ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides concrete filter_string examples for common cases such as audited, customer-specific, and non-expired quotations. It also explicitly routes amount-related queries to kingdee_query_bills and field discovery to kingdee_get_fields, though it lacks a full when-not-to-use explanation versus related sales-order query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_sales_outstockARead-onlyIdempotent
查询销售出库单(发货单)。
对应金蝶 ApiDoc 销售管理域「销售出库」模块,FormId: SAL_OUTSTOCK。 用于查询已发货/出库的明细,支持按客户、仓库组织、日期、单据状态筛选。
⚠️ 字段 Key 警示(真机实测,2026-08-07): 本环境客户字段的元数据 Key 是 FCustomerID(大写 ID 后缀),并非 SAL_SaleOrder 常见的 FCustId,也不是 kingdee_list_forms 推荐的 FCustId。直接传 FCustId 会报 「元数据中标识为FCustId的字段不存在」。字段 Key 一律以 kingdee_get_fields 元数据为准。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定客户: "FCustomerID.FNumber='C001'"
日期区间: "FDate>='2026-05-01' and FDate<='2026-05-31'"
推荐 field_keys(已按本环境元数据校验可用): FID,FBillNo,FDate,FDocumentStatus,FCustomerID.FName,FStockOrgId.FName
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the description's added value is the field-key trap: it discloses that FCustomerID is the real key in this environment, quotes the exact error message produced by passing FCustId, and defers to kingdee_get_fields as the authority. That is genuinely useful non-schema context, though return shape and pagination behavior are left to the output schema and parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and FormId, then the critical field-key warning, then copy-pasteable examples — a sensible priority order with no filler. Mileage is slightly lost to the multi-line warning block and markdown bold, but each block carries distinct, actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only query tool with an output schema, the description covers identity (FormId), filtering, field selection, and the environment-specific field-key pitfall — everything needed to call it correctly. Only the paging behavior (limit max 100, start_row offset) and its relationship to the generic query sibling are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With reported schema description coverage at 0%, the description compensates well: it supplies the concrete form_id value (SAL_OUTSTOCK), shows three working filter_string patterns including the related-field syntax FCustomerID.FNumber='C001', and lists a validated field_keys set. limit, start_row and order_string remain unexplained, but the high-risk parameters are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (查询销售出库单/发货单) and pins it to the exact FormId SAL_OUTSTOCK plus the ApiDoc domain, so an agent can identify the entity without opening the schema. It stops short of differentiating from the generic sibling kingdee_query_bills or from kingdee_query_delivery_notice, which would make the boundary unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'用于查询已发货/出库的明细,支持按客户、仓库组织、日期、单据状态筛选' gives clear conditions of use, and the filter_string examples make the intended query scenarios concrete. It never states when NOT to use this tool or which sibling to prefer instead (e.g. the generic kingdee_query_bills), so there is no explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_sequenceARead-onlyIdempotent
查询金蝶系统中的编码规则(SequenceRule)列表。
常用 filter_string:
指定单据类型: "FObjectType='PUR_PurchaseOrder'"
指定编码规则: "FSequenceRuleId.FNumber='SEQ001'"
推荐 field_keys: FSequenceRuleId,FName,FNumber,FObjectType,FDescription,FIsActive
Returns: str: JSON 格式的编码规则列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns a JSON list of sequence rules, which is consistent and provides return format context. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct: one line for purpose, two example usages, a line for recommended fields, and the return type. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of annotations, input schema with parameter descriptions, and an output schema (implied), the description supplements with practical examples and recommended fields. It does not cover error handling or pagination, but those are addressed by schema (start_row, limit). Adequate for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides parameter descriptions in Chinese, but the tool description adds practical examples (e.g., 'FObjectType=\'PUR_PurchaseOrder\'' for filter_string) and recommended field_keys, which enhances understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (编码规则/SequenceRule) and action (查询/query). It provides specific examples of filter_string and field_keys, distinguishing it from other query tools like kingdee_query_bills. The title annotation '查询编码规则' reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives common filter_string usage examples and recommends specific field_keys, guiding the agent on effective usage. However, it lacks explicit when-not-to-use or comparison with siblings like kingdee_query_number_rule, but the name and context make it clear this is the dedicated tool for sequence rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_stock_billsARead-onlyIdempotent
查询出入库相关单据。
form_id 常用取值:
STK_InStock: 采购入库单
SAL_OUTSTOCK: 销售出库单
STK_MisDelivery: 其他出库单
STK_Miscellaneous: 其他入库单
STK_TransferDirect: 直接调拨单
Returns: str: JSON 格式的出入库单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety. Description adds return type (JSON string) but does not elaborate on pagination behavior or result structure beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus a bullet list of form_id examples, all front-loaded and efficient with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has many parameters and an output schema, the description covers the core purpose and common form_ids; could mention pagination behavior but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds value by listing common form_id values beyond the schema's generic description; however, other parameters like filter_string and field_keys are not explained further, though schema descriptions are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool queries inbound/outbound documents (出入库单据) and lists common form_id values for specific stock movements, distinguishing from general query tools like kingdee_query_bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit form_id examples for common stock scenarios (e.g., STK_InStock for purchase receipt), but lacks guidance on when not to use this tool or alternatives among many sibling query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_stock_inARead-onlyIdempotent
查询采购入库单。
对应金蝶 ApiDoc 库存管理域「采购入库」模块,FormId: STK_InStock。 用于查询已完成/在途的采购入库单及其供应商信息,支持按供应商、仓库、日期、单据状态筛选。
⚠️ 字段 Key 警示(真机实测,范探源已验证): 本单据业务伙伴是供应商,字段 Key 用 FSupplierId(注意与销售类单据的 FCustId / FCustomerID 不同,采购入库单的客户字段并不存在)。误用 FCustId 会报「字段不存在」。 字段 Key 一律以 kingdee_get_fields 元数据为准。
⚠️ 动作范围说明:标准保存/提交/审核动作已由通用 kingdee_save_bill / kingdee_submit_bills / kingdee_audit_bills 等按 FormId 参数化覆盖,本工具仅做查询,不负责写操作。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定供应商: "FSupplierId.FNumber='V001'"
日期区间: "FDate>='2026-05-01' and FDate<='2026-05-31'"
推荐 field_keys(已按本环境元数据校验可用): FID,FBillNo,FDate,FDocumentStatus,FSupplierId.FName
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful domain behavior: it is query-only, write actions are handled elsewhere, and misusing FCustId instead of FSupplierId on this FormId produces a field-not-found error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the warnings are clearly separated. The description is somewhat long, but the field-key warning, query-only scope, and filter examples all add actionable value for this domain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need not be explained. The description provides the missing domain context an agent needs to call it correctly: FormId, supported filters, safe field keys, supplier-field pitfall, and explicit query-only scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The nested QueryInput schema documents the generic parameters, and the description adds substantial domain semantics beyond that: FormId STK_InStock, recommended field_keys, common filter_string examples, and the supplier field-key caveat. It does not explain pagination parameters such as limit and start_row, but those are covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (查询采购入库单), gives the exact FormId (STK_InStock), and places it in the inventory-management module. It also distinguishes the tool from write-oriented siblings kingdee_save_bill / kingdee_submit_bills / kingdee_audit_bills by stating it is query-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly says when the tool is used (querying completed/in-transit purchase stock-in bills and supplier information) and explicitly excludes write actions. However, it does not explicitly distinguish this tool from closely named query siblings such as kingdee_query_stock_bills or kingdee_query_bills.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_stock_transfer_applyARead-onlyIdempotent
查询调拨申请单(STK_TransferApply)列表。
调拨申请单用于申请仓库之间物料的转移,经审核后可下推生成调拨单。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定调出仓库: "FSendStockId.FNumber='WH01'"
指定调入仓库: "FReceiveStockId.FNumber='WH02'"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FSendStockId.FName,FReceiveStockId.FName
Returns: str: JSON 格式的调拨申请单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds minimal behavioral context beyond querying; no details on authentication, rate limits, or pagination behavior beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very concise with clear sections (purpose, filter examples, field_keys). Every sentence is meaningful; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, description adequately covers business context and basic usage. Could mention pagination limits (max 100) but schema handles defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage in description text, the description adds significant value with concrete filter examples and recommended field_keys, greatly aiding parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it queries stock transfer applications (STK_TransferApply) and explains the business purpose. It distinguishes from generic query tools but does not explicitly differentiate from sibling 'kingdee_query_transfer_apply'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful filter examples and recommended field_keys, implying typical use cases. However, it does not explicitly state when to use this tool over siblings or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_supplier_quotesARead-onlyIdempotent
查洵供应商报价单(SVM_QuoteBill)列表。
供应商报价单是供应商对询价单的响应,包含物料价格信息。 可用于比价分析,选择最优供应商。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定供应商: "FSupplierId.FNumber='S001'"
指定物料: "FMaterialId.FNumber='MAT001'"
推荐 field_keys: FID,FBillNo,FDate,FDocumentStatus,FSupplierId.FName,FMaterialId.FName,FPrice,FQuantity
Returns: str: JSON 格式的报价单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds that it returns a JSON list, but does not elaborate on rate limits, authentication, or other behavioral traits. The disclosure is adequate given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, with a clear front-loaded purpose, followed by business context, practical examples, and a return format note. Every sentence adds value without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, annotations (read-only, idempotent), and the presence of an output schema, the description covers essential usage aspects. It explains the data source, business need, and key filters. Minor omission: pagination is not mentioned, but it is covered in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the input schema provides basic descriptions for each property, the description adds significant value by offering specific filter_string examples (FDocumentStatus, FSupplierId, FMaterialId) and recommended field_keys, which clarify usage beyond the generic schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states '查询供应商报价单(SVM_QuoteBill)列表', identifying the specific resource (supplier quotes) and action (query list). It explains the tool is for supplier responses to inquiries and price comparison, distinguishing it from sibling tools like kingdee_query_sale_quotations (customer quotations) and other query tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides context on when to use: for supplier quote retrieval and price comparison. It gives concrete filter examples for common use cases (e.g., by status, supplier, material) and recommends field_keys. However, it does not explicitly state when not to use or mention sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_system_configARead-onlyIdempotent
查询金蝶系统中的系统配置参数。
常用 filter_string:
指定配置项: "FConfigKey='MaxUploadSize'"
指定分类: "FCategory='System'"
推荐 field_keys: FConfigId,FConfigKey,FConfigValue,FDescription,FCategory,FIsActive
Returns: str: JSON 格式的系统配置列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, and idempotent behavior. The description adds that it returns a JSON format list but does not disclose any additional traits or limitations beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and starts with purpose. It uses bullet points for examples, which aids readability. However, it could be slightly more structured, e.g., grouping return info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description adequately explains inputs and output format. It mentions pagination parameters implicitly via examples? Actually no, but the schema covers them. Overall, it covers the essential information for a config query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has descriptions for filter_string and field_keys, but the tool description adds value by providing concrete examples and recommended field_keys. It also clarifies the return format. For the other parameters (start_row, limit), the description does not add meaning, but they are straightforward.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries system config parameters in Kingdee. It provides specific examples of filter_string and field_keys, and mentions the return is a JSON list. This distinguishes it from sibling query tools which query other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives examples of filter strings and field keys, implying common usage. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide prerequisites or conditions where the query might fail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_transfer_applyARead-onlyIdempotent
查询调拨申请单(STK_TransferApply)列表。
调拨申请单是调拨业务的起点,可下推生成直接调拨单或分步式调拨单。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定日期范围: "FBillDate>='2024-01-01' and FBillDate<='2024-12-31'"
指定调出仓库: "FOutStockId.FNumber='WH01'"
指定调入仓库: "FInStockId.FNumber='WH02'"
未关闭: "FCloseStatus='A' and FBusinessClose='A'"
推荐 field_keys(默认已包含关键字段): FID,FBillNo,FBillDate,FDocumentStatus,FStockOrgId.FName, FOutStockId.FName,FInStockId.FName,FTransferType, FMaterialId.FNumber,FMaterialId.FName,FUnitId.FName,FQty,FPrice,FAmount
Returns: str: JSON 格式的调拨申请单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the description does not add significant behavioral detail beyond confirming it is a query returning a JSON list. The description mentions return type ('str: JSON 格式的调拨申请单列表') but does not discuss pagination behavior (though schema defines limit/start_row) or other nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: first sentence states purpose, then business context, then bullet-pointed filter examples, then recommended field keys, then return type. Every sentence adds value, and the use of examples is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, business context, usage patterns, and return format. With an output schema present, it is not required to detail return values. However, it implicitly assumes the form_id parameter should be 'STK_TransferApply' but does not explicitly tell the agent to set that value, which is a minor omission given the parameter is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all parameters with individual descriptions, so schema coverage is high. The description adds value by providing concrete examples for filter_string and field_keys, showing common usage patterns (e.g., '已审核: FDocumentStatus='C'') that go beyond the schema's generic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries a list of transfer applications (调拨申请单), identifies the specific form (STK_TransferApply), and explains the business context (starting point for transfer, can be pushed to direct or step transfer). This distinguishes it from sibling tools with similar names like kingdee_query_transfer_direct or kingdee_query_stock_transfer_apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical usage guidance with multiple example filter strings and recommended field keys, showing how to filter by document status, date range, warehouses, and close status. However, it does not explicitly contrast with alternative query tools or state when to use this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_transfer_directARead-onlyIdempotent
查询直接调拨单(STK_TransferDirect)列表。
直接调拨单用于一步完成调拨业务,同时更新调出仓和调入仓库存。
常用 filter_string:
已审核: "FDocumentStatus='C'"
指定日期范围: "FBillDate>='2024-01-01' and FBillDate<='2024-12-31'"
指定调出仓库: "FOutStockId.FNumber='WH01'"
指定调入仓库: "FInStockId.FNumber='WH02'"
未关闭: "FCloseStatus='A' and FBusinessClose='A'"
推荐 field_keys(默认已包含关键字段): FID,FBillNo,FBillDate,FDocumentStatus,FStockOrgId.FName, FOutStockId.FName,FInStockId.FName,FMaterialId.FNumber, FMaterialId.FName,FUnitId.FName,FQty,FPrice,FAmount
Returns: str: JSON 格式的直接调拨单列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds context about updating stock, which is consistent but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: purpose sentence, brief explanation, then bullet lists of common filters and recommended fields. Every sentence is informative with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists (supplements return info), and description covers key usage details including filter patterns and field examples. Slight lack of pagination or sorting guidance, but adequate for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema properties all have descriptions (100% coverage), so baseline is 3. Description adds value by providing concrete filter_string examples and recommending field_keys, which go beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states this tool queries direct transfer orders (STK_TransferDirect) and explains it's for one-step transfers that update both warehouses. The verb '查询' (query) and specific resource distinguish it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides example filters and recommended field keys, which imply typical use, but does not explicitly state when to use this tool over sibling query tools like kingdee_query_stock_bills or kingdee_query_transfer_apply. No when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_transfer_pending_detailARead-onlyIdempotent
查询分步式调出未调入明细表(STK_TransferPendingDetail)。
用于查看分步式调拨流程中,已调出但未调入的单据明细。
常用 filter_string:
指定调出日期范围: "FOutDate>='2024-01-01' and FOutDate<='2024-12-31'"
指定物料: "FMaterialId.FNumber='MAT001'"
指定调出仓库: "FOutStockId.FNumber='WH01'"
推荐 field_keys(默认已包含关键字段): FID,FBillNo,FOutDate,FInDate,FDocumentStatus,FStockOrgId.FName, FOutStockId.FName,FInStockId.FName,FMaterialId.FNumber,FMaterialId.FName, FUnitId.FName,FOutQty,FInQty,FPendingQty
Returns: str: JSON 格式的分步式调出未调入明细列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by explicitly stating the return format (JSON list) and providing default field keys and filter examples. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is fairly concise with bullet points for parameters and returns. It front-loads the purpose and table name. Could potentially be slightly shorter, but no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-parameter query with filter, fields, pagination), the description covers the essential usage: table name, filter examples, recommended fields, and return format. An output schema exists, so return value details are covered. No notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already includes descriptions for all parameters, so the baseline is moderate. The description adds usage examples for filter_string and recommends field_keys, adding some semantics beyond the schema. However, it does not explain the form_id parameter or the overall QueryInput structure beyond the given examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool queries the '分步式调出未调入明细表' (step-by-step transfer out but not in detail), specifying the exact table and the business scenario. The verb '查询' (query) and resource are unambiguous, and the tool is distinct from many sibling query tools by its focus on pending transfer details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides practical filter_string examples (date range, material, warehouse) which help with parameter usage, but does not include guidance on when to use this tool versus alternatives like kingdee_query_stock_bills or kingdee_query_transfer_apply. No explicit exclusions or when-not-to-use criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_userARead-onlyIdempotent
查询金蝶系统中的用户列表。
常用 filter_string:
指定用户名: "FUserID.FNumber='user001'"
在岗状态: "FIsActive=1"
指定部门: "FDepartment.FNumber='D001'"
推荐 field_keys: FUserID,FName,FNumber,FDepartment.FName,FIsActive,FCreateDate
Returns: str: JSON 格式的用户列表
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, indicating a safe read-only operation. The description adds transparency by stating the return format (JSON str) and providing concrete filter examples, which help the agent understand the tool's behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct and well-structured: a single-line purpose, bullet points for common filters, recommended fields, and return type. Every sentence adds value with no redundancy, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 4 parameters and the existence of an output schema (per context), the description is mostly complete with usage examples and return format. It lacks details on pagination (start_row, limit), but the schema covers that. The description adds enough context for typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite the schema description coverage being 0% (per context), the description compensates with explicit examples for filter_string and recommended field_keys, adding meaning beyond the parameter names and types. However, it does not cover start_row and limit parameters, which are present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '查询' and resource '用户列表', and the tool name itself specifies 'kingdee_query_user', making it obvious that it queries user data. This distinguishes it from sibling query tools for other entities, such as kingdee_query_inventory or kingdee_query_bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides common filter string examples and recommended field keys, which imply usage patterns for querying users, but it does not explicitly state when to use this tool versus alternatives like kingdee_query_role or kingdee_query_permission. No explicit when-not-to-use or comparison with siblings is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_query_workflow_statusCRead-onlyIdempotent
查询单据的审批流状态。
返回单据当前的审批状态和单据详情。
Returns: str: JSON 格式的审批状态信息
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. Description adds that return is JSON string, but omits details like whether the document must exist or what happens if not found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very short and front-loaded with purpose. However, it mixes Chinese and English, and the Returns block is redundant. Could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, description doesn't need to detail return structure, but it omits important context like possible statuses, error conditions, and behavior with non-existent documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% according to context, and the description does not explain parameters (form_id, bill_id) or their values. Parameter purposes are only inferred from brief schema labels.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries approval flow status and returns status and details. It differentiates from siblings like kingdee_query_approval_flow only by name, not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like kingdee_query_approval_flow or kingdee_view_bill. Missing context for prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_refresh_metadataARead-only
强制重新从金蝶拉取指定表单的元数据(忽略内存/磁盘缓存),用于表单结构变更后刷新。
返回是否成功及字段数量。刷新后 kingdee_validate_bill / kingdee_save_bill 将使用最新字段定义。
| Name | Required | Description | Default |
|---|---|---|---|
| form_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavior beyond the annotations: it explicitly bypasses both memory and disk caches, reports success plus field count, and affects subsequent validate/save calls. Annotations already cover the safety profile (readOnly, non-destructive), and nothing here contradicts them — cache refresh is a non-business-data operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the force-refresh/bypass-cache action, then the return and downstream consequences. No filler, though the downstream note could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return-shape explanation isn't needed, and the description still mentions success/field count and the effect on related bill tools. The only gap is how to source form_id, which slightly weakens completeness for a metadata-refresh tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single form_id parameter has 0% schema description coverage, and the description only refers to '指定表单' without explaining the ID format or where to obtain it (e.g., kingdee_list_forms). Baseline for a one-parameter tool with high coverage would be higher; here the gap keeps it at minimum viable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: force re-fetch form metadata from Kingdee while bypassing memory/disk cache. It also distinguishes this maintenance operation from the query tools by noting the downstream effect on kingdee_validate_bill / kingdee_save_bill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear trigger — 'used to refresh after form structure changes' — which tells the agent when this tool is appropriate. It stops short of naming the alternative (e.g., kingdee_get_fields or kingdee_list_forms) for normal metadata reads, so the routing is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_save_assetA
新增或修改固定资产(FA_FAGet)。 固定资产新建后状态为"草稿",需提交+审核后才生效。 修改已审核资产需要反审核后才能操作。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (no safety hints). The description discloses that new assets start as draft and require submit+audit, and that modifying audited assets needs reverse audit. This adds valuable behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with no waste. First sentence states purpose, second explains initial state, third explains modification. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main behavioral context but is silent on return value or error handling. An output schema exists but its details are not described. For a save tool, lacking return info reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema's sub-parameters have descriptions (e.g., form_id, model), but the tool description does not add extra meaning or explain how to set form_id to 'FA_FAGet'. Schema coverage is present, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '新增或修改固定资产' (add or modify fixed assets) along with the specific form type FA_FAGet. It distinguishes from sibling save tools like kingdee_save_bill which handle different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use: for creating or modifying fixed assets. It explains the lifecycle (draft -> submit+audit, reverse audit for edits) but does not explicitly mention when not to use or compare to alternatives like kingdee_create_and_audit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_save_billA
新建或修改金蝶单据(采购订单、销售订单等)。
新建:model 中不传 FID
修改:model 中必须传 FID,并设置 is_delete_entry=false 防止分录被删
自动纠错:如字段名拼写错误(如 FSalesOrgId→FSaleOrgId),会自动修正
新建采购订单 model 示例: { "FDate": "2024-01-15", "FSupplierId": {"FNumber": "S001"}, "FPurchaseDeptId": {"FNumber": "D001"}, "FPOOrderEntry": [ {"FMaterialId": {"FNumber": "MAT001"}, "FQty": 100, "FPrice": 10.5, "FUnitID": {"FNumber": "PCS"}} ] }
Returns: str: JSON,含新建单据的 FID 和单据编号 FBillNo
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint=false, etc.). Description adds significant behavioral context: auto-correction of typos, FID handling, and is_delete_entry behavior. This adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two paragraphs (rules and example) with clear bullet points. Every sentence earns its place. Front-loaded with purpose and rules.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (create vs. update, auto-correction, 4 parameters) and presence of output schema, the description covers all key aspects and provides a complete usage example.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has descriptions for all parameters, but description adds a concrete purchase order model example and clarifies the relationship between FID and is_delete_entry. This supplements the schema well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates or modifies Kingdee documents (e.g., purchase orders, sales orders) with specific verb+resource. It distinguishes from sibling tools like kingdee_audit_bills or kingdee_query_bills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear rules: new need no FID, modify must have FID and set is_delete_entry=false. Also mentions auto-correction of field names. Could explicitly mention when not to use (e.g., for asset or production order specific saves) but overall helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_save_cost_adjustmentA
新建或修改成本调整单(STK_CostAdjust)。
model 示例: { "FDate": "2024-01-15", "FCostOrgId": {"FNumber": "100"}, "FAdjustType": "1", "FCostAdjustEntry": [ {"FMaterialId": {"FNumber": "MAT001"}, "FAdjustQty": 100, "FAdjustPrice": 10.5} ] }
Returns: str: JSON,含 FID 和 FBillNo
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false (write operation) and destructiveHint=false. The description adds that it creates or modifies, plus the return format (JSON with FID and FBillNo). However, it does not disclose authorization requirements, side effects, or behavior when modifying (e.g., partial updates). The added value is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence for purpose, a JSON example, and return info. No redundant words. The key information is front-loaded (purpose), followed by example, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (saving cost adjustment with nested entries), the model example significantly aids understanding. The return format is specified. While the output schema is not detailed, the description covers the essentials. The schema already documents parameters comprehensively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for each parameter (e.g., form_id, model, need_update_fields, is_delete_entry). The description adds a concrete model example demonstrating the expected JSON structure, which enhances understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states '新建或修改成本调整单(STK_CostAdjust)' which clearly identifies the verb (create or modify) and the resource (cost adjustment order). The model example further clarifies the structure. Differentiates from sibling save tools (e.g., kingdee_save_bill) by focusing specifically on cost adjustments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other save tools like kingdee_save_bill or kingdee_save_asset. There is no mention of prerequisites, typical scenarios, or exclusions. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_save_production_orderA
新建或修改生产订单(PRD_MO)。
新建示例: { "FDate": "2024-01-15", "FMaterialId": {"FNumber": "MAT001"}, "FQty": 100, "FPlanStartDate": "2024-01-20", "FPlanFinishDate": "2024-01-25" }
Returns: str: JSON,含 FID 和 FBillNo
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, consistent with creation/modification. Description adds a creation example and return value description. However, it does not mention idempotency or that modifications require FID (though schema mentions it). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with a clear purpose and a helpful example. The JSON example adds length but is justified. Could be slightly more streamlined without the example, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (one nested parameter) and 0% schema coverage, the description should provide more parameter context. The return value is well-described. However, missing explanations for form_id and other fields reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides a JSON example for the 'model' parameter but fails to explain 'form_id', 'need_update_fields', and 'is_delete_entry'. Schema includes descriptions but the tool description does not elaborate, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '新建或修改生产订单(PRD_MO)', which is a specific verb (create/modify) and resource (production order). It distinguishes from siblings like kingdee_save_bill and kingdee_save_asset by focusing on production orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like kingdee_save_bill for other order types. The purpose is implied but not articulated, and prerequisites (e.g., existence of material FNumber) are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_submit_billsA
提交单据(草稿 → 待审核)。
返回结构化结果:success=true 时包含 next_action 字段,建议调用 kingdee_audit_bills 完成审核。
Returns: str: JSON,含 success / next_action / bill_ids 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a write operation (readOnlyHint false) and not destructive. The description adds context by specifying the status change (draft → pending review) and that the response includes a next_action field, providing useful behavioral cues beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main action, but the return type is described in a code-like format which could be cleaner. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic action and output format, but it omits potential failure modes (e.g., invalid IDs, already submitted bills) and required permissions. For a simple submit tool, this is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description does not mention any parameters; they are only described in the schema (in Chinese). With 0% schema description coverage, the description fails to add meaning beyond what's in the schema, leaving the agent to rely solely on schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool submits bills, transitioning them from draft to pending review. It distinguishes itself from siblings like kingdee_audit_bills by specifying the submission step and suggesting a follow-up action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by suggesting calling kingdee_audit_bills after successful submission, but it does not explicitly state when to use this tool over alternatives (e.g., kingdee_create_and_audit) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_submit_production_ordersC
提交生产订单(PRD_MO)至审核队列。
Returns: str: JSON,含 success / next_action / bill_ids
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show no safety hints (all false), so description must cover behavior. It only mentions submitting to an approval queue, omitting idempotency, error states, or consequences of re-submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise with no fluff, but return type structure could be clearer. Front-loads key action but loses some detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool but description lacks explanation of return fields (e.g., next_action meaning), error handling, or workflow implications. Output schema not provided inline.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool description provides no parameter explanations; schema descriptions are in Chinese, making them inaccessible to an English-speaking LLM. High schema coverage (100%) but descriptions are non-English.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (submit) and resource (production orders, PRD_MO) to an approval queue. It distinguishes from general submission tools like kingdee_submit_bills by name and context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives like kingdee_save_production_order or kingdee_audit_production_orders. Agent must infer from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_unaudit_billsADestructive
反审核单据(已审核 → 待审核)。反审核后可重新修改和提交。
返回结构化结果:success=true 时表示单据已回到待审核状态。
Returns: str: JSON,含 success / bill_ids 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive. The description adds value by specifying the exact state transition ('已审核 → 待审核') and the condition for success (success=true meaning return to pending audit). It also mentions that bills can be modified and resubmitted, which is helpful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, using two sentences in Chinese plus a return format line. It is front‑loaded with the main action. Minor redundancy in the return description (mentioned in both Chinese and English) could be trimmed, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple state‑change operation, the description covers purpose, state transition, preconditions (audited state implied), and postconditions (modifiable). The presence of an output schema reduces the need to detail return values. However, it lacks error handling or what happens if bills are not in audited state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the two parameters ('form_id' as 单据类型标识, 'bill_ids' as 单据内码FID列表). The tool description does not add any additional semantic information about the parameters, so it meets the baseline for a schema with full description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool un-audits bills, changing status from '已审核' to '待审核'. It distinguishes from sibling 'kingdee_audit_bills' by specifying the reverse operation. Additionally, it explains the benefit (can modify and resubmit) and provides the return format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to reverse an audit, but it does not explicitly state when to use versus alternatives (e.g., delete, submit). No direct contrast with sibling tools like 'kingdee_delete_bills' or 'kingdee_submit_bills'. Some guidance is provided by mentioning post‑un‑audit actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_unclose_billA
整单反关闭单据(已整单关闭的单据恢复业务,opNumber 随表单而异)。
FormId 参数化通用工具(非某单专用,理由:反关闭是标准动作应走通用工具防重复), 适用于单据(销售订单、采购申请单、发货通知单等)。
action 依据:范探源 2026-08-07 三重证据查证 + QA 严过关真机实测——反关闭 opNumber 因表单而异(如 SAL_SaleOrder=YLUnBillClose、PUR_Requisition=Unclose、 PUR_PurchaseOrder=BillUnClose、SAL_DELIVERYNOTICE=UncloseBill),无法静态固定,需真机确认。
端点/格式:ExecuteOperation,opNumber 放顶层,data 只放业务参数。
解析优先级:显式 operation 参数 > 该 form_id 元数据 Operations 按中文名 「整单反关闭/反关闭」匹配 OperationNumber(复用元数据缓存 _query_metadata); 匹配不到返回明确中文错误(提示显式传 operation)。
传参:bill_ids(FID 列表,优先)或 bill_nos(单据编号列表),至少一个。
Returns: str: JSON,含 success / fid / ids / action / action_source / endpoint 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic safety profile (readOnly=false, destructive=false, idempotent=false), so the description earns real credit for disclosing the endpoint (ExecuteOperation), the payload layout (opNumber top-level, data holds only business params), and the metadata-cache-driven operation resolution with a documented failure mode. It omits permission requirements and what state the bill lands in after success, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the bullet structure is scannable, but several bullets carry provenance narration ("范探源 2026-08-07 三重证据查证 + QA 严过关真机实测", "理由:反关闭是标准动作应走通用工具防重复") that serves design documentation rather than agent invocation. Roughly a third of the text does not help an agent decide or call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter wrapper around an ExecuteOperation action, the description covers endpoint, parameter precedence, fallback behavior on metadata mismatch, and is complemented by an output schema declaring success/fid/ids/action/action_source/endpoint, so return values need not be explained. The remaining gap is the absence of any permission/state-precondition detail, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The nested schema already documents form_id, bill_ids, bill_nos ("bill_ids 未提供时使用"), and operation, including the same bill_ids-over-bill_nos priority the description restates. The description's added value is the resolution-priority rule and concrete per-form opNumber examples (SAL_SaleOrder=YLUnBillClose, PUR_Requisition=Unclose, etc.), which the schema does not provide — useful, but largely redundant with the schema's own field text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: "整单反关闭单据(已整单关闭的单据恢复业务)", which is unambiguous against the sibling kingdee_close_bill and other action tools. It lists concrete applicable forms (销售订单、采购申请单、发货通知单), but never names the inverse sibling explicitly, leaving that differentiation to inference from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies the precondition (a bill that is already 整单关闭) and the effect (restore business), plus the resolution priority when no explicit operation is supplied and what happens on match failure (clear Chinese error prompting an explicit operation). It does not explicitly say "use kingdee_close_bill to close" or exclude other action tools like cancel/void, so exclusions are implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_upload_attachmentA
按 WebAPI V6.0 上传一块附件并绑定已存在的单据(表头或分录)。
直接传 Base64,不读取服务器本地文件。单块最多 4 MiB。 多块上传须按顺序调用,保持单据/分录/文件名一致,后续块传首次返回的 file_id, 只有最后一块 is_last=true。上传完成不触发单据提交或审核。 success=true 且 next_action=null 才表示全部上传完成;失败或结果未知时不要自动重传。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, idempotent=false, destructive=false), it discloses the chunking protocol, the 4 MiB per-block ceiling, the file_id continuation contract, that upload does not trigger submit or audit, and the success=true/next_action=null completion signal. The no-retry caveat on failure is exactly the kind of non-obvious behavior an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then descending specificity: transport mode, size limit, multi-chunk ordering rule, side-effect boundary, and completion/retry semantics. Every sentence carries a distinct constraint; no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still supplies the one piece of result interpretation an agent needs — success=true with next_action=null means fully complete. Combined with the mutation semantics and chunk-ordering rules, nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single top-level parameter has 0% documented coverage, but the nested schema properties are richly described, and the description adds protocol-level meaning the schema cannot: send_byte is the current Base64 chunk (≤4 MiB decoded), file_id is the returned id from the first block and is required for continuation, and is_last is true only on the final block. Fields like entry_key, alias_file_name, and bill_no are left to the schema, so it is not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (upload), resource (an attachment block), and target (binds to an existing bill header or entry line), plus the protocol it follows (WebAPI V6.0). It is clearly distinguishable from kingdee_download_attachment and from the bill-mutation siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete operational guidance: bills must already exist, Base64 is passed directly rather than read from server disk, chunks must be sent in order with a consistent bill/entry/filename, and only the final block sets is_last=true. It also warns not to auto-retry after failure or an unknown result. It does not explicitly name alternative tools (e.g. download_attachment) or exclusion cases, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_usage_reportBRead-onlyIdempotent
查看 MCP 使用统计报告,包括工具调用频率、成功率、耗时分布等。
此工具分析已记录的使用日志,帮助了解:
哪些工具被高频使用
哪些工具失败率较高
API 调用耗时分布
使用时段分布
Returns: str: 使用报告(支持 text/markdown/json 格式)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint. Description adds that it analyzes logged usage logs and returns a report, which is consistent and adds mild behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with bullet points listing insights, front-loaded with purpose. No wasted text, structure effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given rich annotations, clear schema, and implied output schema, description is sufficiently complete. It explains purpose and insights, though could mention data range or pre-computation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% because description omits format parameter, but the schema itself provides a clear description of the parameter. Baseline 3 as schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool views MCP usage statistics and lists specific insights (e.g., frequency, success rate, time distribution). However, there is a sibling 'kingdee_usage_stats' with similar name, and description does not differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, such as 'kingdee_usage_stats'. Description implies analysis of logged data but does not specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_usage_statsARead-onlyIdempotent
获取当前会话的使用统计摘要。
返回当前进程内聚合的统计数据:
工具使用次数
成功/失败次数
累计耗时
错误类型统计
Returns: str: 统计数据的 JSON 格式
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, idempotent, and non-destructive hints. The description adds useful behavioral context about the aggregated statistics returned (success/failure counts, time, errors), enhancing transparency beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using bullet points for key statistics. Every sentence is necessary and no redundancy. Front-loads the purpose and clearly explains output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema exists, the description adequately covers the return value format. It lists the statistics included, but does not specify the exact JSON structure. Still sufficient for an agent to understand the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema fully covers them. The description adds no parameter-specific information, which is appropriate. With 0 parameters, the baseline is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves usage statistics for the current session, listing specific aggregated metrics. It is distinct from sibling tools which are CRUD or query functions for business entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use (when needing session usage stats) but does not explicitly state when not to use or list alternatives. The context makes it clear, but lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_validate_billARead-onlyIdempotent
保存前校验单据模型(不真正保存),秒级反馈结构是否正确,避免反复试错。
返回:
ok: 是否通过(无缺失必填、无结构问题)
is_new: 是否新建(model 无 FID)
auto_fixes: 将被自动更名的字段 [{"from","to","location"}](如 FCustId→FCUSTID)
missing_required: 缺失的顶层必填字段
entry_issues: 分录中缺失的必填子字段 / 结构异常
suggestions: 修正建议清单
典型用法:先用本工具校验 -> 按 suggestions 修正 -> 再调用 kingdee_save_bill,一次成功。
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Consistent with readOnlyHint/idempotentHint/destructiveHint=false via '不真正保存', and adds genuine behavioral color: sub-second feedback ('秒级反馈') and the failure taxonomy (auto_fixes, missing_required, entry_issues). Slightly redundant in that it enumerates return fields that the output schema already declares.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the key 'does not save' qualifier, then a scannable bullet list, then the recommended workflow. The return-field list is somewhat duplicative of the output schema, which costs a bit of tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An agent has everything needed: what it does, that it is safe and non-persisting, what kinds of errors it surfaces, and the exact sequence to follow before saving. Return values are also covered by an output schema, so no meaningful gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds one useful semantic point — 'is_new: model 无 FID' — which clarifies how the model parameter encodes create vs update, and '缺失的顶层必填字段' hints at the expected structure. But it says nothing about form_id, is_delete_entry, or need_update_fields, which are present in the schema and whose relevance to a non-saving validation is unclear; a low reported schema-coverage figure means the description should compensate more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb + resource: pre-save validation of a bill model, explicitly '不真正保存' (does not actually save). This clearly separates it from the write path kingdee_save_bill and from other mutation siblings such as audit/submit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit workflow: validate first, fix per suggestions, then call kingdee_save_bill so it succeeds the first time. The alternative (kingdee_save_bill) and the condition selecting this tool are both named, no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_view_billARead-onlyIdempotent
根据单据内码 FID 获取单据完整详情(含所有分录字段)。
mode=summary(默认):关联字段只保留 Id / Number / Name,大幅缩减体积, 适合参照旧单建新单。完整数据动辄 10 万字符,summary 通常在 1 万以内。 mode=full:返回原始 JSON。
Returns: str: JSON 格式的单据数据
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, and idempotent. The description adds valuable context beyond: the data size (up to 100k characters) and how summary mode truncates related fields to Id/Number/Name. This helps the agent understand the output size and behavior. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the main purpose and then explaining modes. Every sentence adds value: the core action, mode details with size comparisons, return type. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (read-only view with two modes) and the presence of an output schema (though not shown), the description is complete. It explains when to use each mode, the return type, and size implications. No gaps remain for an agent to effectively invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema descriptions already explain form_id, bill_id, and mode. The description reinforces mode's purpose and adds practical context (size reduction, use case). Although schema coverage is high, the description adds value by explaining the summary mode's suitability for creating new bills, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving complete bill details by the internal code FID, including all entry fields. It specifies the resource (bill), action (view details), and key identifier. This distinguishes it from sibling tools like kingdee_query_bills (which lists bills) and kingdee_view_production_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use summary mode (referencing old bills) vs full mode (original JSON), including size implications. It does not explicitly state when not to use this tool or mention alternatives, but the context of siblings and required parameters (form_id, bill_id) implies it is for viewing a specific bill's details. Some explicit guidance on prerequisites would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_view_production_orderARead-onlyIdempotent
查看生产订单(PRD_MO)完整详情。
必填参数:
form_id: "PRD_MO"
bill_id: 单据 FID 或 bill_no: 单据编号
Returns: str: JSON 格式的生产订单完整数据
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent. Description adds required form_id value and alternative bill_no parameter. No contradictions, but doesn't elaborate on behavior beyond safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and to the point, listing required parameters and return type. Could be better structured but front-loads key info without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple view tool with output schema. Missing explanation of 'mode' parameter and more detailed return structure, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema: specifies that form_id must be 'PRD_MO' and that bill_id can be either FID or bill_no. Schema already describes parameters, but description clarifies usage constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes viewing complete details of a production order with specific verb and resource. Distinguishes from sibling query tools by emphasizing full details, though not explicitly differentiating from other view tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States required parameters and return type, implying use when needing full details of a specific order. Lacks explicit when-to-use or alternatives, but context with siblings helps differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_void_billsADestructive
作废单据(opNumber=Cancel,非 Invalid!全库无 Invalid 常量)。
FormId 参数化通用工具(非某单专用,理由:作废是标准动作应走通用工具防重复), 仅适用于单据(如 SAL_SaleOrder / PUR_PurchaseOrder / STK_InStock 等)。
action 依据:范探源 2026-08-07 三重证据查证——作废 = Cancel, 旧文档误作 Invalid(OperationNumberConst.cs 反编译确认全库无 Invalid 常量),勿引用。
端点/格式:ExecuteOperation,opNumber=Cancel 放顶层(与 formid 平级), data 只放业务参数 {"Ids":"..."} 或 {"Numbers":[...]}(QA 严过关真机实测格式)。
传参:bill_ids(FID 列表,优先)或 bill_nos(单据编号列表),至少一个。
二开单据自定义作废动作时,可显式传 operation 覆盖默认 Cancel。
Returns: str: JSON,含 success / fid / ids / action / endpoint 字段(注意是 fid/ids 而非 id)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is covered. Beyond that the description adds genuinely non-obvious behavioural detail: the ExecuteOperation endpoint, the requirement that opNumber sits at the top level alongside formid while data carries only the business payload, and the return shape (success/fid/ids/action/endpoint, note fid/ids not id). It omits preconditions such as required bill status or permissions, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bullets are front-loaded and the critical fact (Cancel, not Invalid) leads. However, the provenance narrative ('范探源 2026-08-07 三重证据查证', 'QA 严过关真机实测格式') and the extended rationale for why it is generic consume space without helping an agent decide or call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with annotations covering the safety hints and an output schema that documents the return, the description covers endpoint, payload placement, parameter selection and override semantics, which is most of what an agent needs. The remaining gap is operational preconditions (bill state, permissions) and sibling disambiguation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is reported as 0% (the single 'params' object carries no description), so the description has to compensate, and it does: it states bill_ids is preferred over bill_nos, that at least one is required, and that operation exists to override the default Cancel for second-development forms. Some of this restates the nested ExecuteActionInput descriptions, so the added value is real but not fully incremental.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (作废单据, executed as opNumber=Cancel via ExecuteOperation) and states it is a generic, FormId-parameterized tool that applies only to bills (SAL_SaleOrder, PUR_PurchaseOrder, STK_InStock). It also pre-empts the most likely naming error by insisting the action is Cancel and not Invalid. What it does not do is distinguish itself from the closely named sibling kingdee_cancel_bills, leaving an agent to guess which of the two is the right tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a real scope constraint ('仅适用于单据'), tells the caller at least one of bill_ids/bill_nos must be supplied with bill_ids taking priority, and explains when to pass an explicit operation override for customized forms. But with siblings kingdee_cancel_bills, kingdee_close_bill, kingdee_forbid_bills and kingdee_delete_bills all present, it never says when to void versus cancel/close/forbid/delete, which is exactly the decision an agent faces.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kingdee_workflow_approveA
审批通过或驳回单据。
approve: 审核通过(待审核 → 已审核)
reject: 驳回(已审核 → 反审核回到待审核状态)
返回结构化结果,包含 success / next_action 字段
Returns: str: JSON,含 success / action / bill_id 字段
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by detailing state transitions for approve (待审核→已审核) and reject (已审核→反审核). Annotations show destructiveHint=false, which aligns with the reversible nature. No contradictions; the description provides behavioral context not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with a summary line, bullet points for actions, and a return note. Every sentence adds value; no redundant or missing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (4 parameters, no output schema), the description adequately covers the tool's purpose and usage. It mentions the return JSON with key fields. Could include more detail on error handling or response codes, but sufficient for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all four parameters (form_id, bill_id, action, opinion). The description adds contextual state transition info for action values and clarifies the return structure, slightly enhancing schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool approves or rejects documents, specifies the two actions (approve/reject) with state transitions, and mentions the return structure. It is distinct from sibling query and action tools like kingdee_submit_bills or kingdee_push_and_audit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for approving or rejecting workflow items but does not explicitly state when to use it versus other action tools like kingdee_submit_bills or kingdee_query_pending_approvals. No alternative guidance or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
20 tool updates
v0.2.4- Added
kingdee_cancel_bills - Added
kingdee_close_bill - Added
kingdee_create_lx_billing - Added
kingdee_download_attachment - Added
kingdee_enable_bills - Added
kingdee_forbid_bills - Added
kingdee_get_bill_template - Added
kingdee_query_delivery_notice - Added
kingdee_query_loan_balance - Added
kingdee_query_outsource_orders - Added
kingdee_query_permission_changes - Added
kingdee_query_receipts - Added
kingdee_query_report - Added
kingdee_query_sales_outstock - Added
kingdee_query_stock_in - Added
kingdee_refresh_metadata - Added
kingdee_unclose_bill - Added
kingdee_upload_attachment - Added
kingdee_validate_bill - Added
kingdee_void_bills
81 tool updates
v0.1.0- First observed
kingdee_audit_bills - First observed
kingdee_audit_production_orders - First observed
kingdee_create_and_audit - First observed
kingdee_delete_bills - First observed
kingdee_describe_table - First observed
kingdee_discover_columns - First observed
kingdee_discover_metadata_candidates - First observed
kingdee_discover_tables - First observed
kingdee_get_fields - First observed
kingdee_list_forms - First observed
kingdee_push_and_audit - First observed
kingdee_push_bill - First observed
kingdee_push_production_pick - First observed
kingdee_push_production_stock_in - First observed
kingdee_push_stock_transfer - First observed
kingdee_query_approval_flow - First observed
kingdee_query_asset_card - First observed
kingdee_query_asset_depreciation - First observed
kingdee_query_asset_scrape - First observed
kingdee_query_asset_transfer - First observed
kingdee_query_audit_log - First observed
kingdee_query_bills - First observed
kingdee_query_change_log - First observed
kingdee_query_cost_adjustments - First observed
kingdee_query_cost_calculation - First observed
kingdee_query_cost_centers - First observed
kingdee_query_cost_items - First observed
kingdee_query_cost_trend - First observed
kingdee_query_data_backup - First observed
kingdee_query_expense_reimburse - First observed
kingdee_query_finished_product_cost - First observed
kingdee_query_fixed_asset - First observed
kingdee_query_instant_cost_compare - First observed
kingdee_query_inventory - First observed
kingdee_query_material_cost - First observed
kingdee_query_material_cost_usage - First observed
kingdee_query_material_target_cost - First observed
kingdee_query_materials - First observed
kingdee_query_misc_movement_detail - First observed
kingdee_query_mrp_result - First observed
kingdee_query_number_rule - First observed
kingdee_query_operation_logs - First observed
kingdee_query_partners - First observed
kingdee_query_pending_approvals - First observed
kingdee_query_permission - First observed
kingdee_query_product_standard_cost - First observed
kingdee_query_production_orders - First observed
kingdee_query_production_pick_materials - First observed
kingdee_query_production_plan - First observed
kingdee_query_production_report - First observed
kingdee_query_production_stock_in - First observed
kingdee_query_purchase_inquiry - First observed
kingdee_query_purchase_order_progress - First observed
kingdee_query_purchase_orders - First observed
kingdee_query_purchase_requisitions - First observed
kingdee_query_quality_inspections - First observed
kingdee_query_role - First observed
kingdee_query_sale_orders - First observed
kingdee_query_sale_quotations - First observed
kingdee_query_sequence - First observed
kingdee_query_stock_bills - First observed
kingdee_query_stock_transfer_apply - First observed
kingdee_query_supplier_quotes - First observed
kingdee_query_system_config - First observed
kingdee_query_transfer_apply - First observed
kingdee_query_transfer_direct - First observed
kingdee_query_transfer_pending_detail - First observed
kingdee_query_user - First observed
kingdee_query_workflow_status - First observed
kingdee_save_asset - First observed
kingdee_save_bill - First observed
kingdee_save_cost_adjustment - First observed
kingdee_save_production_order - First observed
kingdee_submit_bills - First observed
kingdee_submit_production_orders - First observed
kingdee_unaudit_bills - First observed
kingdee_usage_report - First observed
kingdee_usage_stats - First observed
kingdee_view_bill - First observed
kingdee_view_production_order - First observed
kingdee_workflow_approve
TDQS
Scored across 101 tools
There is heavy functional overlap: kingdee_query_bills is a generic form query that subsumes a dozen-plus specialized query_* tools, and there are literal or near-duplicate pairs such as kingdee_query_transfer_apply vs kingdee_query_stock_transfer_apply (both STK_TransferApply) and kingdee_query_fixed_asset vs kingdee_query_asset_card (both FA_FAGet). Action families like cancel_bills/void_bills and audit_bills/workflow_approve also blur boundaries, so an agent must read long descriptions to pick correctly.
The vast majority follow a predictable kingdee_<verb>_<noun> snake_case pattern grouped by verb (query_, save_, push_, submit_, audit_, cancel_, discover_). Minor deviations exist: kingdee_view_bill / kingdee_view_production_order instead of query_, singular kingdee_close_bill / kingdee_unclose_bill amid plural *_bills siblings, and one-off names like kingdee_workflow_approve and kingdee_describe_table.
101 tools is far beyond a manageable surface even for a broad ERP domain, and much of the count comes from redundancy (a generic query_bills plus ~30 per-form query tools, parallel push/save convenience wrappers, two usage-statistics tools). The scope is genuinely wide, but the set would be much tighter if specialized queries were consolidated or lazily surfaced.
Coverage spans the full document lifecycle (query/view/save/validate/submit/audit/unaudit/delete/cancel/void/close/forbid/enable/push) plus metadata discovery, reporting, attachments, production, assets, cost, and audit logs—no obvious dead ends. Minor gaps remain, e.g. dedicated update/delete for assets and masters rely on generic save_bill, and some audit-domain forms are acknowledged as possibly not enabled.
Maintenance
Related MCP Connectors
Connect AI to Odoo ERP 14-20: search, create, update and manage records in natural language.
Query your books, company data, business health, and ship invoices from your AI assistant.
Connect your Odoo to Claude and ChatGPT: ask about sales, stock, customers and invoices.
Read, write and run Odoo actions from any AI app, as each user, with approval rules per colleague.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants such as Claude, Cursor, and Windsurf to query and operate Kingdee Cloud Star ERP through natural language, exposing 87 tools across purchasing, sales, inventory, production, cost accounting, fixed assets, auditing, and financial reporting. Supports read and write operations including bill creation, submission, auditing, and un-auditing.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants such as Claude, Cursor, and Windsurf to query and operate Kingdee Cloud Star ERP (purchasing, sales, inventory, finance, production, and more) using natural language across 87 tools. It supports bill creation, submission, auditing, un-auditing, pushing, metadata exploration, and financial report retrieval with account-password authentication on both public and private clouds.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to query and operate Kingdee Cloud Star ERP using natural language, spanning procurement, sales, inventory, finance, production, and related workflows through 87 tools.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants such as Claude and Cursor to query and operate Kingdee Cloud Star ERP through natural language, covering purchasing, sales, inventory, production, costing, and financial workflows.-