MonkeyCode icon indicating copy to clipboard operation
MonkeyCode copied to clipboard

增加对第三方插件的统计机制,形成一个可以管理多个AI编程工具的管理平台

Open zhengxilong opened this issue 2 months ago • 2 comments

MonkeyCode目前无法直接统计第三方插件(如CodeBuddy IDE插件)消耗的token数量等统计信息。

从系统架构分析来看,MonkeyCode的token统计机制依赖于其代理层:

  1. 代理依赖机制 系统通过 backend/internal/proxy/proxy.goL1-L198实现的LLM代理来捕获和记录token使用情况。这个代理会拦截所有经过MonkeyCode的API请求,并通过 backend/internal/proxy/recorder.goL1-L370中的记录器来统计token消耗。

  2. 统计的前提条件 要统计token使用量,请求必须满足以下条件:

请求需要通过MonkeyCode的代理服务器 请求格式需要符合OpenAI兼容的API格式(/v1/chat/completions或/v1/completions) 响应中需要包含标准的usage字段(prompt_tokens、completion_tokens) 3. 第三方插件的限制 CodeBuddy等第三方IDE插件通常:

直接连接到AI服务提供商的API 不经过MonkeyCode的代理层 可能使用不同的API格式或认证方式 可能的解决方案 如果需要统计第三方插件的token使用,可以考虑:

网络层拦截:在企业网关或代理服务器层面配置流量监控 API网关集成:将第三方插件的API请求路由到MonkeyCode的代理 插件适配:开发适配器让第三方插件支持MonkeyCode的认证和路由机制 当前MonkeyCode主要设计用于管理其自身生态内的AI编程工具,对于完全独立的第三方插件,需要额外的集成工作才能实现统一的token统计。

zhengxilong avatar Sep 26 '25 08:09 zhengxilong

@MonkeyCode-AI 评估这个 issue

yokowu avatar Sep 28 '25 10:09 yokowu

我是 MonkeyCode AI 编程助手,你可以在 GitHub 任意仓库的任意 Issue 或 PR 中 at @monkeycode-ai 来呼唤我。 即刻查看任务执行动态

Issue 评估分析

重要性评估

该 Issue 提出的需求具有中等偏高的重要性。随着 MonkeyCode 生态的发展,支持第三方插件是扩大平台影响力的关键一步。目前无法统计第三方插件的 token 消耗,限制了平台的统一管理和计费能力。

详细分析

当前架构限制

  1. 代理依赖机制:MonkeyCode 的 token 统计依赖于其内置的 LLM 代理层 (backend/internal/proxy/proxy.go) 和记录器 (backend/internal/proxy/recorder.go)。
  2. 统计前提条件
    • 请求必须通过 MonkeyCode 的代理服务器
    • 请求格式需符合 OpenAI 兼容的 API 格式
    • 响应中需包含标准的 usage 字段

第三方插件限制

  1. 第三方插件(如 CodeBuddy)通常直接连接到 AI 服务提供商的 API
  2. 不经过 MonkeyCode 的代理层
  3. 可能使用不同的 API 格式或认证方式

可能的解决方案

网络层拦截

在企业网关或代理服务器层面配置流量监控,从而捕获第三方插件的请求和响应。这种方式较为通用,但可能需要额外的网络配置和维护。

API 网关集成

将第三方插件的 API 请求路由到 MonkeyCode 的代理。这需要修改第三方插件的配置,使其指向 MonkeyCode 的代理地址。

插件适配

开发适配器让第三方插件支持 MonkeyCode 的认证和路由机制。这是最灵活的方案,但需要额外的开发和维护成本。

建议

  1. 优先考虑插件适配方案,因为它能提供最佳的用户体验和最完整的功能支持。
  2. 同时,探索网络层拦截的可能性,作为通用的监控方案。
  3. 评估 API 网关集成的可行性,以简化第三方插件的接入流程。

monkeycode-ai[bot] avatar Sep 28 '25 10:09 monkeycode-ai[bot]