讲师中心 微信公众号
AI工具推荐 视频效率加速

Agnost AI Analytics

Polar Sponsor
爱发电 赞助
.NET 9.0

用于在实现 Agnost AI 分析的数据摄入。包含 API 参考、Python 与 TypeScript SDK 指南及 AI 追踪代码示例。

不可知数据摄入

功能概述

不可知数据摄入是一项面向实际任务的技能,主要用于综合指南, 用于将数据输入A不可知AI , 用于分析、监测和洞察;覆盖用于跟踪AI交互和MCP SDK fo的谈话 SDK。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Agnost 数据摄取

将数据摄取至 Agnost AI 以支持分析、监控与洞察的完整指南。涵盖用于追踪 AI 交互的 Conversation SDK,以及用于 Model Context Protocol(MCP)服务器分析的 MCP SDK。

官方文档: https://docs.agnost.ai
API 端点: https://api.agnost.ai
仪表板: https://app.agnost.ai

重要提示:如何应用本技能

在实施 Agnost 数据摄取前,请严格遵循以下优先级顺序:

  1. 明确使用场景:是对话追踪(AI 聊天机器人、智能体),还是 MCP 服务器分析
  2. 查阅 SDK 参考文档:参考 references/ 目录下的详细 API 文档
  3. 复用提供的代码示例:将其作为开发起点
  4. 引用参考资料:在解释实现细节时注明对应参考来源

快速参考

SDK 包

使用场景 Python TypeScript/Node.js Go
对话/AI 追踪 pip install agnost npm install agnostai N/A
MCP 服务器分析 pip install agnost-mcp npm install agnost go get github.com/agnostai/agnost-go

API 端点

端点 方法 说明
/api/v1/capture-session POST 创建新对话/会话
/api/v1/capture-event POST 在会话内记录事件

Conversation SDK(AI 应用推荐)

当构建需追踪用户交互、输入输出及性能指标的 AI 应用、聊天机器人或智能体时,请使用 Conversation SDK。

Python 安装与初始化

# 安装
pip install agnost
# 或
uv add agnost

# 基础初始化
import agnost

# 使用组织 ID(来自仪表板)初始化
agnost.init("your-org-id")

TypeScript/Node.js 安装与初始化

// 安装
npm install agnostai
// 或
pnpm add agnostai

// 基础初始化
import * as agnost from "agnostai";

// 使用组织 ID(来自仪表板)初始化
agnost.init("your-org-id");

核心方法

1. init(org_id, config?) — 初始化 SDK

必须在调用任何追踪方法前执行。

Python

import agnost

# 基础初始化
agnost.init("your-org-id")

# 带配置初始化
agnost.init(
    "your-org-id",
    endpoint="https://api.agnost.ai",  # 自定义端点(可选)
    debug=True                          # 启用调试日志
)

TypeScript

import * as agnost from "agnostai";

// 基础初始化
agnost.init("your-org-id");

// 带配置初始化
agnost.init("your-org-id", {
  endpoint: "https://api.agnost.ai",  // 自定义端点(可选)
  debug: true                          // 启用调试日志
});

2. begin() + end() — 追踪交互(推荐方式)

采用 begin/end 模式可实现自动延迟计算,并使代码更清晰。

Python

import agnost

agnost.init("your-org-id")

# 开始追踪一次交互
interaction = agnost.begin(
    user_id="user_123",
    agent_name="weather-agent",
    input="What's the weather in NYC?",
    conversation_id="conv_456",  # 可选:用于聚合相关事件
    properties={"model": "gpt-4"}  # 可选:自定义元数据
)

# ... 此处执行您的 AI 处理逻辑 ...
response = call_your_ai_model(interaction.input)

# 完成交互(延迟自动计算)
interaction.end(
    output=response,
    success=True  # 若调用失败则设为 False
)

TypeScript

import * as agnost from "agnostai";

agnost.init("your-org-id");

// 开始追踪一次交互
const interaction = agnost.begin({
  userId: "user_123",
  agentName: "weather-agent",
  input: "What's the weather in NYC?",
  conversationId: "conv_456",  // 可选:用于聚合相关事件
  properties: { model: "gpt-4" }  // 可选:自定义元数据
});

// ... 此处执行您的 AI 处理逻辑 ...
const response = await callYourAIModel(interaction.input);

// 完成交互(延迟自动计算)
interaction.end(response);  // 或 interaction.end(response, true) 表示成功

3. track() — 单次调用追踪

适用于所有数据已就绪、无需 begin/end 分阶段处理的场景。

Python

import agnost

agnost.init("your-org-id")

agnost.track(
    user_id="user_123",
    input="What's the weather?",
    output="The weather is sunny with 72°F.",
    agent_name="weather-agent",
    conversation_id="conv_456",  # 可选
    success=True,
    latency=150,  # 毫秒
    properties={"model": "gpt-4", "tokens": 42}
)

4. identify() — 用户信息增强

将用户元数据与用户 ID 关联,以支持更丰富的分析能力。

Python

import agnost

agnost.init("your-org-id")

agnost.identify("user_123", {
    "name": "John Doe",
    "email": "john@example.com",
    "plan": "premium",
    "company": "Acme Inc"
})

TypeScript

import * as agnost from "agnostai";

agnost.init("your-org-id");

agnost.identify("user_123", {
  name: "John Doe",
  email: "john@example.com",
  plan: "premium",
  company: "Acme Inc"
});

5. flush() 与 shutdown() — 资源管理

Python

import agnost

# 手动刷新待发送事件
agnost.flush()

# 清洁关闭(自动刷新并关闭连接)
agnost.shutdown()

TypeScript

import * as agnost from "agnostai";

// 手动刷新待发送事件
await agnost.flush();

// 清洁关闭(自动刷新并关闭连接)
await agnost.shutdown();

Interaction 对象方法

使用 begin() 时,您将获得一个 Interaction 对象,其提供如下方法:

方法 说明
set_input(text) / setInput(text) 设置或更新输入文本
set_property(key, value) / setProperty(key, value) 添加单个自定义属性
set_properties(dict) / setProperties(obj) 批量添加多个自定义属性
end(output, success?, latency?) 完成并发送事件

示例:动态构建输入(Python)

interaction = agnost.begin(
    user_id="user_123",
    agent_name="my-agent"
)

# 从多个来源组合输入
interaction.set_input("Combined user query: " + user_input)
interaction.set_property("source", "chat-widget")
interaction.set_properties({"model": "gpt-4", "version": "v2"})

# 处理并完成
response = process_query(interaction.input)
interaction.end(output=response)

MCP 服务器分析

针对 Model Context Protocol(MCP)服务器的追踪,请使用 MCP SDK。

Python(FastMCP)

from mcp.server.fastmcp import FastMCP
from agnost_mcp import track, config

# 创建 FastMCP 服务器
mcp = FastMCP("my-mcp-server")

# 添加您的工具
@mcp.tool()
def my_tool(param: str) -> str:
    return f"Result: {param}"

# 启用追踪
track(mcp, "your-org-id", config(
    endpoint="https://api.agnost.ai",
    disable_input=False,   # 追踪输入参数
    disable_output=False   # 追踪输出结果
))

# 启动服务器
mcp.run()

TypeScript(MCP SDK)

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { trackMCP } from "agnost";

// 创建 MCP 服务器
const server = new Server({
  name: "my-mcp-server",
  version: "1.0.0"
}, {
  capabilities: { tools: {} }
});

// 启用追踪
trackMCP(server, "your-org-id", {
  endpoint: "https://api.agnost.ai",
  disableInput: false,
  disableOutput: false
});

// 启动服务器
const transport = new StdioServerTransport();
await server.connect(transport);

Go(mcp-go)

package main

import (
    "github.com/agnostai/agnost-go/agnost"
    "github.com/mark3labs/mcp-go/server"
)

func main() {
    s := server.NewMCPServer("my-server", "1.0.0")

    // 添加工具...

    // 启用追踪
    agnost.Track(s, "your-org-id", &agnost.Config{
        DisableInput:  false,
        DisableOutput: false,
        BatchSize:     10,
        LogLevel:      "info",
    })

    server.ServeStdio(s)
}

API 参考(直连 HTTP)

适用于无需 SDK、需直接调用 API 的场景。

创建会话

curl -X POST https://api.agnost.ai/api/v1/capture-session 
  -H "Content-Type: application/json" 
  -H "X-Org-Id: your-org-id" 
  -d '{
    "session_id": "unique-session-id",
    "client_config": "my-app",
    "connection_type": "http",
    "ip": "",
    "user_data": {
      "user_id": "user_123",
      "email": "user@example.com"
    },
    "tools": ["tool1", "tool2"]
  }'

捕获事件

curl -X POST https://api.agnost.ai/api/v1/capture-event 
  -H "Content-Type: application/json" 
  -H "X-Org-Id: your-org-id" 
  -d '{
    "session_id": "unique-session-id",
    "primitive_type": "tool",
    "primitive_name": "weather_lookup",
    "latency": 150,
    "success": true,
    "args": "{"city": "NYC"}",
    "result": "{"temp": 72}",
    "metadata": {
      "model": "gpt-4",
      "tokens": "42"
    }
  }'

数据结构

会话请求

{
  "session_id": "字符串(UUID 或自定义 ID)",
  "client_config": "字符串(应用标识符)",
  "connection_type": "字符串(http/stdio/sse)",
  "ip": "字符串(可选)",
  "user_data": {
    "user_id": "字符串",
    "...": "任意其他用户字段"
  },
  "tools": ["数组", "包含", "工具", "名称"]
}

事件请求

{
  "session_id": "字符串(须匹配已有会话)",
  "primitive_type": "字符串(tool/resource/prompt)",
  "primitive_name": "字符串(原始操作名称)",
  "latency": "整数(毫秒)",
  "success": "布尔值",
  "args": "字符串(JSON 编码的输入)",
  "result": "字符串(JSON 编码的输出)",
  "checkpoints": [
    {
      "name": "字符串",
      "timestamp": "整数(距开始时间的毫秒数)",
      "metadata": {}
    }
  ],
  "metadata": {
    "key": "value 对"
  }
}

配置选项

Python Conversation SDK

agnost.init(
    "your-org-id",
    endpoint="https://api.agnost.ai",  # API 端点
    debug=False                         # 启用调试日志
)

TypeScript Conversation SDK

interface ConversationConfig {
  endpoint?: string;  // API 端点(默认:https://api.agnost.ai)
  debug?: boolean;    // 启用调试日志(默认:false)
}

agnost.init("your-org-id", { endpoint: "...", debug: true });

Python MCP SDK(FastMCP)

from agnost_mcp import track, config

track(server, "your-org-id", config(
    endpoint="https://api.agnost.ai",
    disable_input=False,   # 不追踪输入参数
    disable_output=False   # 不追踪输出结果
))

TypeScript MCP SDK

import { trackMCP, createConfig } from "agnost";

const cfg = createConfig({
  endpoint: "https://api.agnost.ai",
  disableInput: false,
  disableOutput: false
});

trackMCP(server, "your-org-id", cfg);

Go MCP SDK

type Config struct {
    Endpoint         string        // 默认:"https://api.agnost.ai"
    DisableInput     bool          // 默认:false
    DisableOutput    bool          // 默认:false
    BatchSize        int           // 默认:5
    MaxRetries       int           // 默认:3
    RetryDelay       time.Duration // 默认:1s
    RequestTimeout   time.Duration // 默认:5s
    LogLevel         string        // "debug", "info", "warning", "error"
    Identify         IdentifyFunc  // 可选:用户识别函数
}

最佳实践

1. 总是在应用启动时尽早初始化

# 在应用启动时执行
import agnost
agnost.init("your-org-id")

2. 使用 begin/end 获取准确延迟

# 自动计算处理耗时
interaction = agnost.begin(user_id="u1", agent_name="agent")
# ... 处理中 ...
interaction.end(output=result)

3. 使用 conversation_id 聚合相关事件

# 同一聊天会话中的全部事件
conversation_id = f"chat_{session_id}"
interaction = agnost.begin(
    user_id="u1",
    conversation_id=conversation_id,
    agent_name="chatbot"
)

4. 健壮地处理错误

interaction = agnost.begin(user_id="u1", agent_name="agent")
try:
    result = process_request()
    interaction.end(output=result, success=True)
except Exception as e:
    interaction.end(output=str(e), success=False)

5. 清洁关闭

import atexit
import agnost

atexit.register(agnost.shutdown)

适用场景

当您遇到以下任一情况时,应启用本技能:

  • Agnost 数据摄取的实现
  • AI 对话追踪功能的搭建
  • MCP 服务器分析的集成
  • 事件/会话捕获 API 的使用
  • SDK 初始化相关问题
  • 延迟追踪需求
  • 用户身份识别与信息增强

附加资源

  • Python SDK 参考文档: references/python-sdk.md
  • TypeScript SDK 参考文档: references/typescript-sdk.md
  • API 参考文档: references/api-reference.md
  • 仪表板: https://app.agnost.ai
  • Discord 社区: https://discord.gg/agnost
目录

热门AI工具

更多
墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

0

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

0

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

0

2026.10.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

0

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

0

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

0

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn