> For the complete documentation index, see [llms.txt](https://docs.neuron-ai.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.neuron-ai.dev/neuron-v3-zh/agent/observability.md).

# 监控与调试

该 [Inspector](https://inspector.dev/) 团队为 Neuron 设计了内置可观测性功能，因此你可以监控正在运行的 AI 代理，帮助你自信地维护生产级实现。

## 安装 Inspector

你可以按照这份分步指南，将你的 Neuron AI Agents、RAG 或 Workflow 连接到 Inspector 监控仪表板：

{% embed url="<https://docs.inspector.dev/guides/neuron-ai>" %}

在将你的应用连接到 Inspector 后，当你的代理被执行时，你将能够查看其推理步骤、工具调用等详细信息。

<figure><img src="/files/4cb0cb5c44d9b3dc40d3d8fae380b33a54c62a39" alt=""><figcaption></figcaption></figure>

如果你想监控整个应用，你可以根据你的开发环境安装 Inspector 包。我们为以下提供集成包 [PHP](https://github.com/inspector-apm/inspector-php), [Laravel](https://github.com/inspector-apm/inspector-laravel), [Symfony](https://github.com/inspector-apm/inspector-symfony), [CodeIgniter](https://github.com/inspector-apm/inspector-codeigniter), [Drupal](https://docs.inspector.dev/guides/drupal)。请查看我们的 [GitHub 组织](https://github.com/inspector-apm).

### 创建采集密钥

要创建采集密钥，请前往 [**Inspector 监控仪表板**](https://app.inspector.dev/register) 并创建一个新应用。

{% hint style="success" %}
如需更多支持，请在仪表板中发起实时聊天。我们很乐意听取你的使用体验，发现新的改进机会，并随着时间推移让工具变得更好。
{% endhint %}

### 注入 InspectorObeserver

如果你的应用没有与 PHP 环境变量的特定集成，你可以通过编程方式将 InspectorObserver 组件注入到代理中，并传入在仪表板中生成的采集密钥：

```php
use Inspector\Neuron\InspctorObserver;

/*
 * 在运行时注入
 */
$message = MyAgent::make()
    ->observe(InspctorObserver::instance('INSPECTOR_INGESTION_KEY'))
    ->chat(...)
    ->getMessage();
    
/*
 * 在代理构造函数中一次性设置观察器
 */
class MyAgent extends Agent
{
    public function __construct()
    {
        $this->observe(InspctorObserver::instance('INSPECTOR_INGESTION_KEY'));
    }
}
```

## 日志记录

如果你想将代理活动上报到你的日志系统，可以附加内置的 `LogObserver` 到你的代理中，并传入一个 PSR `LoggerInterface` 兼容的日志记录器，例如 monolog：

```php
use NeuronAI\Observability\LogObserver;

$message = MyAgent::make()
    ->observe(new LogObserver($logger))
    ->chat(...)
    ->getMessage();
```

所有内部事件及其载荷都会被记录。
