Files
pingtai_agent/format_police_agent/USAGE.md
T
2026-02-05 16:01:34 +00:00

318 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 格式警察 Agent
---
本 Agent 提供基于 **智能解析** 的 JSON 格式校验与修复能力,通过 **HTTP API** 与 **MCP(Model Context Protocol)** 对外提供服务。
核心能力:
- **格式校验**:符合 RFC 8259 标准的 JSON 语法检测
- **智能修复**:基于规则引擎与 LLM 的多级修复策略
- **格式美化**:可配置缩进的结构化输出
---
## 功能概览
提供 JSON 文本的 **语法验证、智能修复、格式化输出** 能力,返回结构化处理结果。
支持能力:
- JSON Schema 合规性校验
- 常见语法错误自动修复
- LLM 辅助的非结构化文本转换
- 可配置的格式化输出
---
## 1⃣ check_and_fix_json — 智能校验与修复
### 功能说明
对输入内容执行 **多级修复策略**:优先通过规则引擎修复常见语法问题,失败时启用 LLM 进行语义转换,确保输出符合 JSON 规范。
---
### REST API 调用
```
POST /api/v1/check
Content-Type: application/json
api-key: {your-api-key}
```
```json
{
"content": "{name: 'test', value: 123,}",
"use_ai": true
}
```
---
### MCP 调用
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "check_and_fix_json",
"arguments": {
"content": "{name: 'test', value: 123,}",
"use_ai": true
}
}
}
```
---
### 参数说明
| 参数 | 类型 | 必需 | 默认值 | 说明 |
| --- | --- | --- | --- | --- |
| content | string | ✅ | - | 待校验或修复的文本内容 |
| use_ai | boolean | ❌ | true | 是否启用 LLM 辅助修复 |
---
### 修复策略
| 阶段 | 策略 | 说明 |
| --- | --- | --- |
| L1 | 直接解析 | 验证是否为合法 JSON |
| L2 | 模式提取 | 从代码块 / 嵌套文本中提取 JSON |
| L3 | 规则修复 | 修复引号、逗号等常见语法问题 |
| L4 | LLM 转换 | 调用大模型将非结构化文本转为 JSON |
---
### 返回结果
```json
{
"success": true,
"result": {
"success": true,
"is_original_valid": false,
"message": "已自动修复 JSON 格式问题",
"formatted_json": {
"name": "test",
"value": 123
}
}
}
```
---
### 返回字段说明
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| success | boolean | 处理是否成功 |
| is_original_valid | boolean | 原始输入是否为合法 JSON |
| message | string | 处理结果描述 |
| formatted_json | object/array | 修复后的 JSON 对象 |
---
## 2️⃣ validate_json — 格式校验
### 功能说明
执行 **只读校验**,验证输入是否符合 JSON 语法规范,返回详细的错误定位信息,不进行任何修改。
---
### REST API 调用
```
POST /api/v1/validate
Content-Type: application/json
```
```json
{
"content": "{\"valid\": true, \"count\": 42}"
}
```
---
### MCP 调用
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "validate_json",
"arguments": {
"content": "{\"valid\": true}"
}
}
}
```
---
### 参数说明
| 参数 | 类型 | 必需 | 默认值 | 说明 |
| --- | --- | --- | --- | --- |
| content | string | ✅ | - | 待校验的文本内容 |
---
### 返回结果(合法)
```json
{
"success": true,
"result": {
"valid": true,
"message": "有效的 JSON 格式",
"json_type": "dict",
"preview": "{'valid': True, 'count': 42}"
}
}
```
### 返回结果(非法)
```json
{
"success": true,
"result": {
"valid": false,
"message": "无效的 JSON 格式",
"error_detail": "位置 1: Expecting property name enclosed in double quotes",
"suggestion": "可以使用 check_and_fix_json 工具尝试修复"
}
}
```
---
## 3️⃣ format_json — 格式美化
### 功能说明
对合法 JSON 执行 **结构化美化输出**,支持自定义缩进层级,便于阅读与调试。
---
### REST API 调用
```
POST /api/v1/format
Content-Type: application/json
```
```json
{
"content": "{\"a\":1,\"b\":{\"c\":2}}",
"indent": 4
}
```
---
### MCP 调用
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "format_json",
"arguments": {
"content": "{\"a\":1,\"b\":{\"c\":2}}",
"indent": 2
}
}
}
```
---
### 参数说明
| 参数 | 类型 | 必需 | 默认值 | 说明 |
| --- | --- | --- | --- | --- |
| content | string | ✅ | - | 合法的 JSON 字符串 |
| indent | integer | ❌ | 2 | 缩进空格数(1-8) |
---
### 返回结果
```json
{
"success": true,
"result": {
"success": true,
"formatted_json": {
"a": 1,
"b": {
"c": 2
}
},
"formatted_string": "{\n \"a\": 1,\n \"b\": {\n \"c\": 2\n }\n}"
}
}
```
---
## 统一错误格式
成功:
```json
{
"success": true,
"result": {}
}
```
失败:
```json
{
"success": false,
"error": "错误描述"
}
```
---
## 服务端点
| 端点 | 方法 | 说明 |
| --- | --- | --- |
| / | GET | 服务状态 |
| /health | GET | 健康检查 |
| /mcp | POST | MCP JSON-RPC |
| /mcp/sse | GET/POST | MCP SSE 流式 |
| /api/v1/check | POST | 智能校验与修复 |
| /api/v1/validate | POST | 格式校验 |
| /api/v1/format | POST | 格式美化 |
---
## 部署信息
| 配置项 | 值 |
| --- | --- |
| 镜像地址 | agnettaiji.azurecr.io/ai-agents/format-police-agent:latest |
| 服务端口 | 8000 |
| 健康检查 | /health |