跳转至

MonkeyCode 逆向工程 — 分析完成度矩阵

最后更新: 2026-07-03 总维度: 40/40 ✅ 全部搞清楚(36 原维度 + 4 新增深入分析维度) 源码增强轮: 第 3 轮系统深入分析完成(3 轮次报告扩增 1438L/88 代码块 + code-exhibits 扩增 + 4 新维度报告) 不可覆盖项: 3 项(运营配置范畴,非逆向可及) 代理源码扫描: 全部 10 文件 (3,031 行 TypeScript) + MVP 全部 13 文件 (4,854 行 Python) 已覆盖 源码覆盖率: 代理层 10 文件 100% 行级覆盖,Go 后端关键源码文件覆盖


全部完成维度 (36/36)

1-7: 认证协议

# 维度 搞清楚了吗 关键结论 源码证据 验证工具
1 Session Redis 双结构 Hash Key + Lookup Key。Cookie 只存 UUID。代理层 AuthManager 24h 缓存 pkg/session/session.go + proxy/src/auth.ts test_auth.py
2 CAP.js/go-cap 验证码 50x32 网格,cap.go Go 实现,challenge+redeem 线上确认 biz/public/handler/http/v1/captcha.go 线上 curl 测试
3 5 种登录方式 password-login、oauth/callback、email、team、mfa biz/user/handler/v1/auth.go
4 百智云 OAuth client_id=monkeycode-ai, scope=user+phone, 3 个 callback URL oauth_login.py 线上实测参数
5 Auth 中间件 Cookie → Lookup → Hash 三跳查找。TTL 不刷新。代理自动回复 acp_ask_user_question middleware/auth.go + proxy/src/task-runner.ts
6 密码 bcrypt hash 明文 HTTPS 传输,bcrypt DefaultCost=10,MD5 注释是错误 pkg/crypto/bcrypt.go
7 认证自动化策略 Status 端点不刷新 TTL。30 天硬过期。号池 29 天提前重登录。P0/P1 告警 biz/user/handler/v1/auth.go + proxy/src/account-pool.ts test_auth.py

8-14: LLM 通信

# 维度 搞清楚了吗 关键结论 源码证据 验证工具
8 模型管理 API CRUD + 分页 cursor,Go + @ai-sdk 双查询 domain/model.go models.ts
9 3 种接口类型 openai_chat/openai_responses/anthropic,代理自动选择 cli_name domain/model.go + proxy/src/task-runner.ts
10 11 个提供商 代理层 ModelProvider 联合类型 12 种。模型 ID 6 层回退解析 pkg/llm/client.go + proxy/src/models.ts
11 模型定价配额 基本+pro+ultra 三级,最大并发 3,无 rate limiting domain/model.go 源码 grep 确认无限流
12 LLM Client 集成 3 种 SDK(go-openai/go-openai 新版/anthropic-sdk-go)自动选择 pkg/llm/client.go
13 Coding Agent 配置 cli_name 枚举 (codex/claude/opencode),NPM 包按 interface_type 映射 pkg/taskflow/vm.go
14 私有模型创建 Owner=platform/team/user 三级。ModelManager.resolveModel 6 层解析 domain/model.go + proxy/src/models.ts

15-20: WebSocket 协议

# 维度 搞清楚了吗 关键结论 源码证据 验证工具
15 Task Stream WS mode=new/attach,ACP 事件流。代理自动 auto-approve + reply-question task-runner.ts + proxy/src/task-runner.ts chat.py
16 Task Control WS 完整 RPC 消息格式(repo_file_list/switch_model/restart 等 7 种) proxy/src/task-runner.ts + proxy/src/conversation-manager.ts
17 Terminal 协议 PTY → WS 二进制帧隧道,TTY UTF-8 + ANSI,15s ping Go PTY 源码 Python 模拟
18 TaskLive 内部 TaskChunk{Data,Event,Kind,Timestamp},SetReadLimit(-1) pkg/taskflow/vm.go
19 语音转文字 PCM S16LE 16kHz mono,Doubao 流式 ASR 2.0,SSE 流 pkg/doubao/doubao.go
20 ACP 事件参考 9 种事件完整字段。代理 6 种 ACP 事件处理 task-runner.ts + proxy/src/task-runner.ts handleACPEvent test_protocol.py

21-25: API 端点和授权

# 维度 搞清楚了吗 关键结论 源码证据 验证工具
21 API 端点 100+ 端点 + 代理管理端点 12 个。两套管理系统对比 + 各端组 HTTP 示例 api-endpoints.md + proxy/src/server.ts curl 测试
22 授权矩阵 public/user/team/admin 四级 + 代理层无认证管理端点安全分析 Go 中间件 + proxy/src/server.ts
23 Conversation API 6 端点,前端 UI 层抽象,代理独立实现 user.go
24 订阅计费 SubscriptionResp{plan,source,expires_at,auto_renew},开源版固定 pro。号池多账号可绕过 subscription/handler/v1/subscription.go + proxy/src/account-pool.ts
25 Admin 管理 API 12 端点 + 代理管理 8 端点。OAuth 会话 10 分钟超时 Go 源码 + proxy/src/server.ts

26-32: VM, TaskFlow, 代理

# 维度 搞清楚了吗 关键结论 源码证据 验证工具
26 VM 生命周期 创建→启动→就绪→运行→销毁。代理层任务超时 1h 保护 + WS 锁超时 internal/taskflow/vm.go + proxy/src/task-runner.ts
27 MCP 协议 JSON-RPC 2.0 over HTTP,tools/list+call,mcaiBuiltin 在 65510 MCP 2025-06-18 规范
28 Agent 内部 3 种 Agent (codex/claude/opencode)。cli_name 映射:openai_responses→codex, anthropic→claude, 其他→opencode pkg/taskflow/vm.go + proxy/src/task-runner.ts
29 VM 资源管理 Cores=2, Memory=8GB(硬编码,忽略前端传参),默认 3 并发。代理 WS_LOCK_MAX_MS 锁超时 domain/team_policy.go + proxy/src/account-pool.ts
30 代理架构 10 模块 ~3031 行 TypeScript,Chat+Responses 双模式。5 种错误处理模式 proxy/src/ 全部 10 文件
31 号池管理 多账号轮转(HTTP 共享/WS 独占)+ 健康检查 1h + 错误隔离 + 29 天 TTL + P0/P1 告警 account-pool.ts
32 多轮对话 ConversationManager + mode=attach,30 分钟超时清理 conversation-manager.ts

33-35: 代理层新增维度

# 维度 搞清楚了吗 关键结论 源码证据 验证工具
33 浏览器指纹伪装 5 种域名专用请求头(mk/bz/sc/nav/wsHeaders),Chrome 148 精确模拟 proxy/src/browser-headers.ts (87L)
34 OAuth HTTP 自动化 6 步纯 HTTP OAuth 流程(无浏览器),10 分钟会话超时,备用回调URL模式 proxy/src/admin-login.ts (416L) oauth_http.py
35 部署与中间件 Express 中间件链(CORS/JSON/SSE),5 种错误处理模式,启动序列 7 步 proxy/src/server.ts (331L)

36: 实现对比分析

# 维度 搞清楚了吗 关键结论 源码证据 验证工具
36 Python MVP vs TS Proxy 8 大差异:架构(HTTPServer vs Express)、WS 模型(线程 vs 事件)、用户输入编码(base64 vs 纯文本)、模型管理(cache vs 6层回退) 等 mvp/*.py (4,854L) vs proxy/src/*.ts (3,031L)

37-40: 第 3 轮新增维度

# 维度 搞清楚了吗 关键结论 源码证据 验证工具
37 模型发现 Pipeline 6 层回退(精确→provider/model→model→display_name→default→首项),5 分钟缓存,monkeycode/provider/model 格式 proxy/src/models.ts resolveModel GET /v1/models
38 Conversation Manager 生命周期 mode=attach 复用已有 WS,30 分钟超时清理,5 分钟定时扫描,30 秒连接超时,Promise 模式 resolve proxy/src/conversation-manager.ts (368L)
39 代理错误处理与重试策略 5 种错误码(40100/40002/40003/40300/50000)、4 级隔离(CREATED/ACTIVE/EXPIRED/INVALID)、4 层超时保护、P0/P1/P2 告警 proxy/src/account-pool.ts handleError
40 代理安全加固分析 OWASP Top10 自评(7/10 项需关注)、管理端点无认证风险、CORS 全开、错误泄露风险 全部 10 个 TS 文件

不可覆盖项 (3 项)

以下 3 项属于线上运营配置范畴,非逆向分析可及:

# 维度 原因 建议获取方式
1 订阅具体价格 Stripe 后台配置,不在开源代码中 注册账号查看定价页面
2 余额具体行为 闭源支付组件,开源版也无 balance handler 线上测试余额 API
3 生产环境 Nginx 限流 开源版无限流配置,生产环境可能不同 生产环境渗透测试

验证状态总览

验证方式 完成数
Go 源码确认 26
TypeScript 代理源码确认 40
Python 验证工具 10 (含独立深度分析报告)
线上 HTTP 测试 4
公开协议规范 2

附录:验证工具索引

工具 位置 用途 行数
auth.py mvp/auth.py 认证模块 323
chat.py mvp/chat.py WebSocket 聊天 133
client.py mvp/client.py 统一客户端 673
models.py mvp/models.py 模型管理 95
proxy_real.py mvp/proxy_real.py 真实代理 873
test_auth.py mvp/test_auth.py 14 个认证测试 498
test_protocol.py mvp/test_protocol.py 协议验证 268
verify_full_flow.py mvp/verify_full_flow.py 端到端验证 471
oauth_login.py mvp/oauth_login.py Playwright OAuth 461
oauth_http.py mvp/oauth_http.py HTTP OAuth 372
09-mvp-python-analysis.md docs/10-appendices/ 新增 MVP 源码深度分析 379