> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clawdot.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# errand_update_address

> MCP 工具 errand_update_address —— 修改跑腿地址簿里的一条地址

## errand\_update\_address

修改地址簿里的某条地址，只传要改的字段，没传的保持原样。常用于改门牌、改备注名、改联系人或联系电话。

<Warning>
  要改**位置**必须把 `address`、`lat`、`lng` 三个一起传（先用 `errand_search_addresses` 搜到新地点拿坐标）。只改文本不改坐标会让骑手按旧坐标去旧地方，因此会被拒绝。
</Warning>

空字符串按「没传」处理，`tag` 除外——传空字符串会清空标签。

### 参数

| 参数                 | 类型     | 必填 | 默认 | 说明                                               |
| ------------------ | ------ | -- | -- | ------------------------------------------------ |
| `consent_grant_id` | string | 是  | —  | 用户授权记录 ID（`cg_` 前缀），来自 `errand_verify_user_bind` |
| `address_id`       | string | 是  | —  | 要改的地址 ID（`plat_` 前缀）                             |
| `contact_name`     | string | 否  | —  | 新联系人姓名                                           |
| `contact_phone`    | string | 否  | —  | 新联系电话；加密保存，只回脱敏形态                                |
| `address`          | string | 否  | —  | 新地址文本；须与 `lat`/`lng` 一起传                         |
| `lat`              | number | 否  | —  | 新纬度（GCJ-02）；须与 `address` 一起传                     |
| `lng`              | number | 否  | —  | 新经度（GCJ-02）；须与 `address` 一起传                     |
| `detail`           | string | 否  | —  | 新门牌补充                                            |
| `tag`              | string | 否  | —  | 新标签；传空字符串可清空                                     |

### 返回

改完后的地址对象，`id` 不变。

| 字段                     | 类型             | 说明                                     |
| ---------------------- | -------------- | -------------------------------------- |
| `id`                   | string         | 地址 ID（`plat_` 前缀），与传入的 `address_id` 一致 |
| `contact_name`         | string         | 联系人（可空）                                |
| `contact_phone_masked` | string         | 脱敏联系电话（如 `138****5678`）；没存过电话时为空串      |
| `address`              | string         | 地址                                     |
| `detail`               | string         | 门牌补充（如「3 号楼 303」）；没填过为空串               |
| `lat`                  | number         | 纬度（GCJ-02）                             |
| `lng`                  | number         | 经度（GCJ-02）                             |
| `tag`                  | string         | 标签                                     |
| `source`               | string         | 地址来源，跑腿存的恒为 `errand`                   |
| `last_used_at`         | string \| null | 最近使用时间                                 |
| `use_count`            | integer        | 使用次数                                   |

<Note>
  一个字段都不传返回 `ADDRESS_UPDATE_EMPTY`；改成与自己另一条地址完全相同返回 `ADDRESS_DUPLICATE`。
</Note>

### 错误码

| code                      | 说明                                    |
| ------------------------- | ------------------------------------- |
| `CONSENT_GRANT_REQUIRED`  | 缺少用户授权（未传 `consent_grant_id`）         |
| `CONSENT_GRANT_INVALID`   | 用户授权无效                                |
| `CONSENT_GRANT_EXPIRED`   | 用户授权已过期，需重新授权                         |
| `CONSENT_GRANT_WRONG_CAP` | 授权属于其它能力，跑腿需单独绑定                      |
| `CAP_NOT_BOUND`           | 该 Agent 未开通跑腿能力                       |
| `ADDRESS_NOT_FOUND`       | `address_id` 不存在或不属于当前用户              |
| `ADDRESS_COORDS_PAIRED`   | 改地址位置时，`address` 与 `lat`/`lng` 必须一起提供 |
| `ADDRESS_DUPLICATE`       | 改后的地址与已有的另一条完全相同                      |
| `ADDRESS_UPDATE_EMPTY`    | 没有提供任何要修改的字段                          |
| `ADDRESS_FIELD_TOO_LONG`  | 地址/联系人/门牌/标签/电话超出长度上限                 |

完整错误码见 [错误处理](/gateway/error-handling)。

### 调用示例

```json theme={null}
{
  "name": "errand_update_address",
  "arguments": {
    "consent_grant_id": "<consent_grant_id>",
    "address_id": "plat_12",
    "detail": "3栋502",
    "tag": "家"
  }
}
```
