Token导航 LogoToken导航

MCP Server · 开发工具

Godebug Agentic

一个无状态的Go应用CLI调试器,专为AI代理工具调用设计,提供运行时验证和传统调试功能。

未说明官方级别未说明来源级核验工具 21
调试工具GoClaude

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
8gears
提供方
8gears

工具数量

21

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

4

仓库热度

收录来源

1 个

MCP World

选型结论

Godebug Agentic 属于开发工具类 MCP Server,公开资料标注 21 个工具,通过传输方式未标注接入,适配 Claude,没有现成的安装命令;接入前要先准备 会话凭据。

分类

开发工具

传输方式

未说明

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 21 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

godebug代理

Go应用程序的无状态CLI调试器,专为AI代理工具调用而设计。允许对日志和测试无法提供的应用程序行为进行运行时验证。看 超越测试:AI代理的运行时验证 从随机生成到确定性工程的范式转变。您还可以使用godebug进行人工智能代理的传统调试。

概述

godebug 包裹 探究 具有输出结构化JSON的单个命令接口的调试器。每次调用运行一个命令,输出结果并退出——非常适合使用无状态命令的AI代理→ 响应模式。

┌─────────────────────────────────────────────────────────────┐
│                     Delve Headless Server                   │
│                   (persistent, maintains state)             │
└─────────────────────────────────────────────────────────────┘
                              ▲
                              │ JSON-RPC
                              │
┌─────────────────────────────────────────────────────────────┐
│  godebug start ./app    │  godebug break main.go:42         │
│  godebug continue       │  godebug locals                   │
│  (each command connects, executes, outputs JSON, exits)     │
└─────────────────────────────────────────────────────────────┘

安装

先决条件

  • 转到1.24+
  • 探究 调试器(go install github.com/go-delve/delve/cmd/dlv@latest)

安装

go install github.com/8gears/godebug-agentic@latest

快速开始

# Start debug session (returns JSON with server address)
godebug start ./cmd/myapp
# {"data":{"addr":"127.0.0.1:38697",...}}

# Use --addr for all subsequent commands
godebug --addr 127.0.0.1:38697 break main.go:42
godebug --addr 127.0.0.1:38697 continue
godebug --addr 127.0.0.1:38697 locals
godebug --addr 127.0.0.1:38697 quit

文档

有关完整的命令参考、示例和工作流,请参阅Claude Code技能:

📖 .claude/技能/godebug/技能.md

该技能用经过验证的JSON输出示例记录了所有21个命令:

  • 会话管理: start, connect, quit, status, restart
  • 断点: break (与 --cond 对于条件句), clear, breakpoints
  • 执行: continue, next, step, stepout
  • 检查: locals, args, eval
  • 导航: stack, frame, goroutines, goroutine
  • 来源: list, sources

为什么调试?

传统调试

AI代理可以使用 godebug 对于经典的调试工作流程——查找和修复错误:

  • 设置断点 在可疑地点
  • 逐步执行 逐行编码
  • 检查变量 了解国家
  • 检查调用堆栈 追踪执行流程
  • 调试goroutines 诊断并发问题

在Go中,并发性是一级公民,这尤其有价值:

  • 竟态条件 取决于无法静态确定的时间
  • 死锁 从跨越多个goroutine的锁排序中脱颖而出
  • 渠道行为 取决于缓冲区大小和goroutine调度
  • 上下文取消 以需要运行时观察的方式传播

运行时验证(测试之外)

除了bug查找,调试器还启用了一种新的范式: 验证应用程序行为 日志和测试无法捕获。

验证方法它提供了什么它错过了什么
日志选择报告什么代码日志语句之间的所有内容
单元测试预测场景的通过/失败中间状态、时间、实际路径
调试器实际运行时状态无-直接观察

核心观点: 测试验证结果,调试器验证行为.

可以检查运行时状态的AI代理不会猜测——它知道。这将代码生成从随机输出转换为经过验证的工程。

有关完整的范式转变,请参阅 超越测试:AI代理的运行时验证.

手术数据提取

随着 eval,AI可以准确地提取所需的数据,而不会产生日志垃圾邮件:

# Instead of adding print statements and re-running...
godebug --addr $ADDR eval "myStruct.InnerField.Map[\"key\"]"
godebug --addr $ADDR eval "len(users)"
godebug --addr $ADDR eval "err.Error()"

优点:

  • 无代码修改:在不添加打印语句的情况下检查任何表达式
  • 代币高效:只获取相关数据,而不是整个日志转储
  • 迭代探索:按需深入挖掘嵌套结构

上下文窗口效率

LLM的上下文窗口有限。 godebug 回报 集中、结构化的数据:

方法令牌信噪比
转储1000行日志~4000低(大多无关紧要)
转储整个文件~2000中等(需要找到行)
godebug eval~50高(正是被问到的)
godebug locals~200高(仅当前范围)

设计原则

  • 无状态:没有会话文件或隐藏状态--只需传递 --addr
  • JSON输出:对方案消费的结构化回应
  • 单个命令:每次调用都是独立的,非常适合AI代理
  • 全力挖掘:通过干净的CLI实现所有调试功能

示例:调试并发错误

此示例显示了如何在中调试WaitGroup竞争条件 testdata/concurrency_bugs/waitgroup_race.

臭虫

// BUGGY: Add() races with Wait()
for i := 0; i < 10; i++ {
    go func(id int) {
        wg.Add(1)  // May execute AFTER Wait() returns
        defer wg.Done()
    }(i)
}
wg.Wait()  // Returns immediately if no Add() called yet

调试会话

# Start debug session and capture address
ADDR=$(godebug start ./testdata/concurrency_bugs/waitgroup_race | jq -r '.data.addr')

# Set breakpoints
godebug --addr $ADDR break main.go:18  # wg.Add(1)
godebug --addr $ADDR break main.go:27  # wg.Wait()

# Continue - hits Wait() FIRST (proving the race)
godebug --addr $ADDR continue
# {"data":{"location":{"line":27}}}  <- Wait() reached before Add()!

# Check WaitGroup state
godebug --addr $ADDR locals
# wg.state.v = 0  <- No Add() called yet!

# Check goroutines
godebug --addr $ADDR goroutines
# Main at Wait() (line 27), workers still at lines 17-18

godebug --addr $ADDR quit

发现: 主河道河段 Wait() 在任何工人打电话之前 Add(),所以 Wait() 立即返回。

发展

先决条件

可用任务

task              # Build the binary
task build        # Build optimized binary to ./bin/godebug
task build:dev    # Build with debug symbols
task test         # Run tests with race detection
task test:cover   # Run tests with coverage
task lint         # Run golangci-lint
task verify       # Run tidy + lint + test + build
task clean        # Remove build artifacts

项目结构

godebug-agentic/
├── main.go                     # Entry point
├── cmd/
│   ├── root.go                 # Cobra root, --addr/--output flags
│   ├── start.go                # Start debug session
│   ├── connect.go              # Connect to existing server
│   ├── quit.go                 # Quit debug session
│   ├── status.go               # Check server status
│   ├── breakpoint.go           # break, clear, breakpoints
│   ├── execution.go            # continue, step, next, stepout, restart
│   ├── inspect.go              # locals, args, eval
│   ├── navigation.go           # stack, frame, goroutines, goroutine
│   └── source.go               # list, sources
├── internal/
│   ├── debugger/
│   │   ├── client.go           # Delve RPC2 client wrapper
│   │   └── launcher.go         # Spawns dlv headless
│   └── output/
│       ├── response.go         # JSON response envelope
│       ├── errors.go           # Error types and handling
│       └── exitcodes.go        # CLI exit codes
├── testdata/
│   ├── debugme/                # Basic test application
│   └── concurrency_bugs/       # Concurrency bug examples
└── .claude/
    └── skills/godebug/         # Claude Code skill documentation

测试数据:并发错误示例

这 testdata/concurrency_bugs/ 目录中故意包含有缺陷的Go程序,用于练习调试:

示例Bug类型
waitgroup_race/WaitGroup添加/等待比赛条件
race_counter/非同步计数器增量
deadlock_circular/循环锁排序死锁
closure_loop/闭包中的循环变量捕获
mutex_copy/通过值接收器复制互斥体
channel_nil/无信道操作
leak_forgotten_sender/Goroutine从废弃的通道发送泄漏
select_timeout_leak/定时器泄漏 time.After 在循环中
# Build all examples
task build:examples

# Debug an example
godebug start ./testdata/concurrency_bugs/waitgroup_race

许可证

麻省理工学院

相关项目

工具与能力

工具数量

21

资源数量

0

提示词数量

0

能力标签

调试工具Go本地部署Go语言AI集成运行时验证并发调试

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 21 个,一次接入能覆盖的操作比单点工具更全。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到会话凭据的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Godebug Agentic

MCP World · 本页

21未说明未标注1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Godebug Agentic 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Godebug Agentic 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Godebug Agentic 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Godebug Agentic 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Godebug Agentic 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP