小程序开放平台

文档中心
Agent 框架
开发
开发 Agent
在小组件中集成 Agent
在小组件内调试本地 Agent
多模态能力接入
知识库能力接入

在小组件内调试本地智能体

应用开发
>
框架
>
开发
>
在小组件内调试本地 Agent
>
更新时间:2025-12-03 14:17:52

小组件调试本地智能体指南(IDE 环境)

概述

本文档说明如何在本地开发环境中调试智能体(Agent)。通过启用调试模式,可以将智能体的 API 请求转发到本地开发服务器,方便进行本地开发和调试。

快速开始

1. 启用调试模式

在创建智能体实例时,传入

debuggerInfo
配置即可启用调试模式:

typescript
import { cloud } from '@xhs/mp-core-api/cloud'

const agent = cloud.AI.createAgent({
  agentId: 'your-agent-id',
  env: 'development',
  version: '0.1.0',
  // 启用调试模式
  debuggerInfo: {
    serverUrl: 'localhost:3000'  // 本地开发服务器地址
  }
})

2. 配置本地开发服务器

确保本地开发服务器正在运行,并且支持以下 API 路径:

  • /v1/aiagent/agents/{agentId}/send-message
    - 发送消息
  • /v1/aiagent/agents/{agentId}/conversations
    - 获取会话列表
  • /v1/aiagent/agents/{agentId}/messages
    - 获取历史消息
  • /v1/aiagent/agents/{agentId}/info
    - 获取智能体信息
  • /v1/aiagent/agents/{agentId}/query-tasks/{taskId}
    - 查询任务
  • /v1/aiagent/agents/{agentId}/upload-openai-file
    - 上传文件

3. 使用智能体 API

启用调试模式后,所有 API 调用会自动转发到本地服务器:

typescript
// 发送消息
const response = agent.sendMessage({
  msg: 'Hello, AI!',
  history: [],
  stream: true
})

// 获取会话列表
const conversations = await agent.getConversations()

// 获取历史消息
const messages = await agent.getHistoryMessages({
  conversation_id: 'conv-123',
  cursor: 0,
  count: 20
})

// 查询任务
const taskResult = await agent.queryTasks({
  taskId: 'task-123'
})

调试模式配置说明

debuggerInfo 参数

参数
类型
必填
说明
serverUrl
string本地开发服务器地址,支持格式:
-
localhost:3000

-
127.0.0.1:3000

-
http://localhost:3000

-
http://127.0.0.1:3000

完整配置示例

typescript
const agent = cloud.AI.createAgent({
  // 智能体 ID(必填)
  agentId: 'demo-agent',
  
  // 环境配置(调试模式下可选,默认使用 development)
  env: 'development',
  
  // 版本号(调试模式下可选,默认使用 latest)
  version: '0.1.0',
  
  // 调试模式配置
  debuggerInfo: {
    serverUrl: 'localhost:3000'
  }
})

调试模式特性

1. 自动路径转换

调试模式下,API 路径会自动从线上格式转换为本地格式:

线上模式:

https://gateway.xiaohongshu.com/v1/agent/{agentId}/chat

调试模式:

http://localhost:3000/v1/aiagent/agents/{agentId}/send-message

2. 跳过 Token 验证

调试模式下会自动跳过 accessToken 的获取和验证,方便本地开发:

  • 不会自动获取 accessToken
  • 请求头中不会添加
    Authorization
    字段
  • 不会处理 410103 token 过期错误

3. Localhost 地址验证

系统会自动验证

serverUrl
是否为本地地址,确保安全:

允许的格式:

  • localhost:3000
  • 127.0.0.1:3000
  • http://localhost:3000
  • http://127.0.0.1:3000

不允许的格式:

  • example.com:3000
    (非本地地址)
  • 192.168.1.1:3000
    (局域网地址,但不允许)

4. 调试日志

启用调试模式后,控制台会输出调试信息:

🔧 当前处于调试模式
📡 调试服务器地址: localhost:3000
✅ 调试模式验证通过

完整示例

示例 1:基础调试配置

typescript
import { cloud } from '@xhs/mp-core-api/cloud'

// 创建调试模式的智能体
const agent = cloud.AI.createAgent({
  agentId: 'my-test-agent',
  debuggerInfo: {
    serverUrl: 'localhost:3000'
  }
})

// 发送消息
const response = agent.sendMessage({
  msg: '测试消息',
  history: [],
  stream: true
})

response.onMessage((chunk) => {
  console.log('收到消息片段:', chunk)
})

response.onSuccess((result) => {
  console.log('消息发送成功:', result)
})

response.onError((error) => {
  console.error('消息发送失败:', error)
})

示例 2:带环境配置的调试

typescript
const agent = cloud.AI.createAgent({
  agentId: 'my-agent',
  env: 'development',
  version: '0.2.0',
  debuggerInfo: {
    serverUrl: '127.0.0.1:8080'
  }
})

示例 3:条件启用调试模式

typescript
// 根据环境变量决定是否启用调试模式
const isDevelopment = process.env.NODE_ENV === 'development'

const agent = cloud.AI.createAgent({
  agentId: 'my-agent',
  env: 'development',
  version: '0.1.0',
  ...(isDevelopment && {
    debuggerInfo: {
      serverUrl: 'localhost:3000'
    }
  })
})

注意事项

1. 本地服务器要求

  • 本地服务器必须支持上述 API 路径
  • 服务器应该返回与线上 API 相同格式的响应
  • 建议使用 HTTP(而非 HTTPS)进行本地开发

2. 网络连接

  • 确保小程序/应用能够访问本地服务器
  • 如果使用模拟器,
    localhost
    通常指向模拟器本身,可能需要使用
    10.0.2.2
    (Android)或
    127.0.0.1
  • 真机调试时,需要使用电脑的局域网 IP 地址(但系统会阻止非 localhost 地址,这是安全限制)

3. 调试模式限制

  • 调试模式仅用于本地开发,不应在生产环境使用
  • 调试模式下不会进行 token 验证,安全性较低
  • 某些线上特性(如 token 自动刷新)在调试模式下不可用

4. 错误处理

如果配置错误,会抛出相应的错误:

typescript
try {
  const agent = cloud.AI.createAgent({
    agentId: 'my-agent',
    debuggerInfo: {
      serverUrl: 'example.com:3000'  // 非 localhost 地址
    }
  })
} catch (error) {
  // 错误: `createAgent` failed, `debuggerInfo.serverUrl` must be a localhost address
  console.error(error.message)
}

常见问题

Q1: 为什么必须使用 localhost 地址?

A: 这是安全限制,确保调试模式只能访问本地服务器,防止误配置导致请求发送到外部服务器。

Q2: 真机调试时如何连接本地服务器?

A: 由于安全限制,系统只允许 localhost 地址。真机调试时,建议:

  • 使用 USB 调试并通过代理转发
  • 或者使用局域网内的测试服务器(需要修改代码允许局域网地址)

Q3: 调试模式下 token 如何处理?

A: 调试模式下会自动跳过 token 的获取和验证,本地服务器应该自行处理认证逻辑。

Q4: 如何区分调试模式和线上模式?

A: 可以通过

isDebugMode
标记在 APM 上报中区分,或者检查
debuggerInfo
是否存在。