从GitHub仓库和npm包中提取、分析AI Agent的源码与系统提示词。
```bash
# 获取README
curl -s -L --max-time 15 "https://raw.githubusercontent.com/{owner}/{repo}/main/README.md"
# 获取仓库结构(如果API可达)
curl -s -L --max-time 15 "https://api.github.com/repos/{owner}/{repo}/git/trees/main?recursive=1"
# 检查关键文件
for path in "package.json" "src/index.ts" "CLAUDE.md" ".claude/CLAUDE.md" "plugins/README.md"; do
code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 "https://raw.githubusercontent.com/{owner}/{repo}/main/$path")
echo "$path → HTTP $code"
done
```
```bash
# 下载wrapper包
cd /tmp && npm pack @{scope}/{package-name}
tar xzf {package-name}-*.tgz
# 检查是否为壳子分发(常见模式)
ls -lh package/bin/
file package/bin/* # 如果是小文件(<1KB),只是占位符
# 下载平台特定二进制
npm pack @{scope}/{package-name}-linux-x64
tar xzf -linux-x64-.tgz
```
当源码是编译后的原生二进制时:
# 检查二进制大小
ls -lh package/claude
# 提取身份声明
grep -aoP 'You are [^"]{0,500}' /path/to/binary | sort -u
# 提取系统提示词章节
grep -aoP '"# [A-Z][^"]{0,200}"' /path/to/binary | sort -u
# 提取工具定义
grep -aoP '"tool_name":"[^"]*"' /path/to/binary | sort -u
# 提取行为指令
grep -aoP '(Prefer|Avoid|Be |Do not|Never|Always|When |If |Use |Keep |Make sure)[^"]{0,300}' /path/to/binary | sort -u
# 提取配置参数
grep -aoP '--system-prompt[^"]{0,200}' /path/to/binary | head -10
# 提取特性标志
grep -aoP 'tengu_[a-z_]+' /path/to/binary | sort -u
从TypeScript定义文件(如sdk-tools.d.ts)中提取:
输出结构化报告,包含:
raw.githubusercontent.comgrep提取是近似的,可能有碎片化strings命令在某些环境不可用,用grep -aoP替代/tmp/目录便于后续分析报告保存为 {workspace}/source-analysis-{project-name}.md,使用Markdown结构化格式。
共 1 个版本