面向逆向工程、渗透测试与数字取证的本地智能体平台
项目概览 · 安装 · 模型配置 · 使用方式 · 扩展与集成 · 开发与发布
REPI 在终端中连接模型、项目上下文和本地安全工具,为长时间、多阶段的技术任务提供统一执行环境。平台覆盖目标识别、任务拆分、工具调用、证据归档、结论验证、会话恢复和步骤重放,适用于安全研究、工程审计、问题复现与分析自动化。
模型负责分析和决策,运行时负责执行与状态管理。命令输出、网络流量、调试记录和生成文件等实际运行产物作为验证依据,模型文本本身不被视为已验证证据。
REPI 以本地部署为默认工作方式。源文件、工具进程、会话数据和任务产物保留在用户环境中;只有提交给所选模型服务的上下文会离开本机。
| 领域 | 主要工作 | 典型产物 |
|---|---|---|
| Native / Pwn | ELF、PE、Mach-O、保护机制、交叉引用、调试与崩溃分析 | 保护机制清单、寄存器状态、偏移、PoC 重放记录 |
| Web / API | 路由、认证授权、请求状态机、XHR、WebSocket、浏览器运行时 | 路由图、身份矩阵、请求序列、响应摘要 |
| Mobile | APK、IPA、ADB、Frida、Java 与 Native hook、反调试 | Manifest 信息、hook 记录、静态与运行时差异 |
| Firmware / IoT | 固件识别、文件系统提取、启动项、服务与配置分析 | 文件系统映射、服务清单、配置与二进制引用 |
| PCAP / DFIR | 流重组、协议提取、时间线、内存与磁盘分析 | 会话流、IOC、提取文件、事件链 |
| Malware | 样本静态分析、行为线索、IOC 与规则整理 | 导入表、字符串、行为映射、YARA 规则 |
| Crypto / Stego | 变换链、参数恢复、约束求解、签名与结果校验 | 已知答案测试、求解记录、首个差异点 |
| Cloud / Identity | Token 流、凭据验证、权限边界与部署状态分析 | 主体信息、策略关系、凭据检查、访问路径 |
每项任务由目标、范围、执行步骤、产物和完成条件组成。REPI 将命令、工具结果、文件产物、声明和验证记录关联起来,便于检查结论来源并重放关键步骤。
Target -> Mission -> Domain Adapter -> Runtime -> Evidence -> Verifier -> Replay
当信息冲突时,系统按实际运行状态、网络流量、当前服务资源、进程配置、持久化产物和源码的顺序评估证据。证据不足、工具缺失或环境受限时,任务状态会保留阻塞原因和后续动作,不生成替代性的成功结果。
- 自动保存会话,并支持继续、检索、分支、克隆和树形导航。
- 支持上下文压缩、检查点、待处理写入和进程重启恢复。
- 长任务可以设置 token 预算、完成条件和明确的完成状态。
- 子任务通过隔离 worker 执行,保留超时、取消、重试和交接信息。
REPI 提供交互式终端、一次性输出、JSON 事件流、RPC 和 TypeScript SDK。相同的会话与工具运行时可用于人工操作、脚本编排、持续集成或上层应用集成。
平台支持 OpenAI Chat Completions、OpenAI Responses 和 Anthropic Messages。协议、模型、上下文窗口、请求头与兼容参数均由配置显式指定,不依赖静默协议切换。
REPI 采用 monorepo 管理四个运行时包,并通过发布契约保持版本一致。
| 模块 | 职责 |
|---|---|
packages/ai |
Provider、模型目录、协议适配与流式响应 |
packages/agent |
Agent Harness、工具循环、消息状态、重试与压缩 |
packages/tui |
终端组件、输入处理与增量渲染 |
packages/coding-agent |
CLI、交互界面、领域运行时、扩展系统与 SDK |
scripts/reverse-agent |
安装、诊断、契约检查、smoke 与发布工具 |
AI 层不持有任务状态;Agent Core 管理模型与工具循环;Coding Agent 负责装配用户入口、领域能力和扩展资源。任务状态使用 SQLite WAL 管理,JSON、Markdown、HAR 和可执行脚本用于导出、交换与重放。
| 项目 | 要求 |
|---|---|
| 操作系统 | Linux、macOS 或 WSL |
| Node.js | >= 22.19.0 |
| 基础工具 | Git、npm |
curl -fsSL https://raw.githubusercontent.com/multi-zhangyang/pi-recon-agent/main/install.sh | bash安装器会拉取源码、安装依赖、生成运行入口并执行离线启动检查。如果启动脚本写入了新的 PATH 配置,终端会显示:
Successfully added repi to $PATH in ~/.bashrc
此时加载对应的 shell 配置,或打开新的终端:
source ~/.bashrcgit clone https://github.com/multi-zhangyang/pi-recon-agent.git
cd pi-recon-agent
bash install.sh安装完成后执行离线检查:
repi --offline --help
repi --offline --list-modelsREPI 支持 Claude Code 风格的环境变量配置。以下示例接入 OpenAI-compatible 服务:
export REPI_AUTH_TOKEN="sk-..."
export REPI_BASE_URL="https://api.example.com/v1"
export REPI_MODEL="provider/model-id"
export REPI_MODEL_API="openai-compatible"
export REPI_CONTEXT_WINDOW=262144
repi model doctor
repi doctorREPI_MODEL_API 支持以下值:
| 配置值 | 对应协议 |
|---|---|
openai-compatible |
OpenAI Chat Completions |
openai-responses |
OpenAI Responses |
anthropic |
Anthropic Messages |
常用环境变量:
| 变量 | 用途 |
|---|---|
REPI_AUTH_TOKEN |
模型服务凭据 |
REPI_BASE_URL |
Provider 根地址 |
REPI_PROVIDER |
Provider 标识 |
REPI_MODEL |
模型标识 |
REPI_MODEL_API |
请求协议 |
REPI_CONTEXT_WINDOW |
上下文窗口 |
REPI_MAX_TOKENS |
单次输出上限 |
REPI_SUBAGENT_MODEL |
子任务使用的模型 |
需要管理多个 Provider、自定义请求头、成本信息或兼容参数时,可使用命令写入 ~/.repi/agent/models.json:
repi model add \
--provider gateway \
--api openai-completions \
--base-url https://api.example.com/v1 \
--model provider/model-id \
--context-window 128000 \
--max-tokens 16384
printf '%s' "$GATEWAY_API_KEY" | repi model login --provider gateway --api-key-stdin
repi model doctor
repi model test --provider gateway --model provider/model-id环境变量、models.json 字段、Header 配置和协议兼容参数见运行时配置。
在目标目录启动 REPI:
cd /path/to/target
repi交互界面支持文件引用、工具调用、模型切换、会话导航和上下文管理。创建具有预算和完成条件的长任务:
/goal --tokens 100k 分析目标,验证关键路径,并输出可复现证据
| 命令 | 用途 |
|---|---|
repi |
启动交互模式 |
repi -p "分析 ./target" |
执行一次性任务并输出结果 |
repi -c |
继续最近一次会话 |
repi -r |
选择历史会话 |
repi --mode json -p "审计当前项目" |
输出 JSON 事件流 |
repi --mode rpc |
启动基于标准输入输出的 RPC 服务 |
| 命令 | 用途 |
|---|---|
/resume |
打开历史会话 |
/tree |
浏览当前会话树并切换节点 |
/fork |
从历史消息创建独立会话 |
/clone |
克隆当前活动分支 |
/compact |
压缩较早的上下文 |
/session |
查看当前会话信息 |
REPI 会读取用户目录中的 ~/.repi/agent/AGENTS.md,并在项目受信任后读取工作目录及父目录中的 AGENTS.md 或 CLAUDE.md。项目指令可用于定义工程规范、验证命令、工具约束和交付格式。
运行数据默认保存在 ~/.repi/agent:
| 路径 | 内容 |
|---|---|
models.json |
Provider 与模型定义 |
settings.json |
运行偏好与上下文配置 |
auth.json |
本地凭据与登录状态 |
sessions/ |
按工作目录组织的会话 |
recon/ |
Mission、证据和领域任务产物 |
常用诊断命令:
repi doctor
repi smoke
repi model doctor
repi bugreport --stdout诊断包提交前应检查并移除凭据、私有端点、会话内容和目标数据。问题反馈流程见 SUPPORT.md。
REPI 兼容扩展、skills、prompt templates、主题和 MCP 服务。扩展可以注册工具、命令、Provider 和界面组件,并通过项目级或用户级配置加载。
repi install npm:pi-web-access
repi listMCP 配置可放在 ~/.repi/agent/mcp.json 或项目内的 .repi/mcp.json:
{
"mcpServers": {
"browser-tools": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "some-mcp-server"],
"autoRegisterTools": true,
"deferToolSchemas": true
}
}
}接口文档:
git clone https://github.com/multi-zhangyang/pi-recon-agent.git
cd pi-recon-agent
npm ci --ignore-scripts
npm run check
npm test用户入口与发布产物验证:
npm run smoke:repi -- --json
npm run smoke:install-path -- --json
npm run smoke:extensions -- --json
npm run smoke:release -- . --json代码规范与提交要求见 CONTRIBUTING.md 和 CODE_OF_CONDUCT.md。
GitHub Release 同时提供 AI、Agent Core、TUI 和 Coding Agent 四个同版本 tarball,以及记录文件名、大小、SHA-256 和安装命令的 repi-release-manifest.json。四个包必须使用相同版本并在同一条命令中安装。
npm install -g \
pi-recon-repi-ai-<version>.tgz \
pi-recon-repi-agent-core-<version>.tgz \
pi-recon-repi-tui-<version>.tgz \
pi-recon-repi-coding-agent-<version>.tgz| 文档 | 内容 |
|---|---|
| 快速开始 | 安装、认证与首个会话 |
| 使用指南 | 交互模式、命令行与会话操作 |
| 模型与 Provider | Provider、认证和模型接入 |
| 运行时配置 | REPI_*、models.json 与兼容参数 |
| Agent Harness | 工具循环、会话、压缩与恢复 |
| 安全政策 | 安全问题报告与敏感数据处理 |
| 支持与反馈 | 自助诊断与问题反馈 |
REPI 以当前用户权限读取文件、执行命令并调用已配置的模型服务。项目配置、第三方扩展、skills 和 MCP 服务会影响运行时可访问的资源,应按实际部署环境进行审查和版本管理。
不要在公开 Issue、日志或截图中提交 API key、token、cookie、HAR、浏览器 profile、私有目标数据或 ~/.repi/agent/auth.json。安全问题通过 GitHub Security Advisory 私密报告,具体流程见 SECURITY.md。