GSD 工程外骨骼 · 多模态视觉 · 会话管理 · SQLite 记忆 · 动态沙箱 · CTF 逆向工具链 · 双模输出 · 技能引擎 · P6 自动化利用链 · API 鲁棒性 · 逻辑刷新 · 双格式 API 原生支持 · 自定义 Provider
PawnLogic 是一个专为极客和开发者打造的全能终端 AI 智能体。强大的会话管理系统,让您能够轻松浏览、搜索、标签化和关联历史对话,同时保留了所有强大功能。
✅ 完美支持 WSL2 及其环境下的本地工具链调用
/chat list [n]— 列出最近 n 个会话(默认20)/chat view <id|n>— 查看完整对话内容/chat export <id|n> [文件路径]— 导出为 Markdown 文件/chat find <关键词>— 跨会话全文搜索/chat tag <id|n> <标签>— 给会话打标签(逗号分隔)/chat untag <id|n> <标签>— 移除会话标签/chat bytag <标签>— 按标签筛选会话/chat link <id1> <id2> [备注]— 关联两个会话/chat unlink <id1> <id2>— 取消关联/chat related <id|n>— 查看关联会话
- Ctrl+C 回退编辑:输入状态下按 Ctrl+C 不退出程序,自动撤回最后一轮对话并重新显示提示符(对齐 Claude Code 交互体验)
- Ctrl+D 退出:使用 Ctrl+D(EOF)正常退出程序
- Agent 生成中断:在 Agent 生成过程中按 Ctrl+C 立即停止,保留已产出内容
- 规格驱动规划 (Spec-Driven):Agent 写代码前必须输出包含
<action>和<verify>的 XML 计划 - 无污染子任务委派 (Fresh Context):内置
delegate_task工具,解决"上下文腐化"问题 - 原子化自动提交:每次修改代码并通过测试后自动调用
git commit - 全局状态管理:使用
/init_project生成.pawn_state.md
- 终端 AI "看图"能力,支持
glm-4v、gpt-4o等视觉模型 - 适用场景:识别报错截图、分析网页 UI、读取 CTF 隐写图片、解析系统架构图
- 多语言隔离沙箱:Python / C / C++ / JS / Bash / Rust / Go / Java
- Docker 容器化执行:
run_code_docker(一次性容器)+pwn_container(持久化容器),默认断网隔离 - 智能 Web 爬虫:Jina Reader → Pandoc → 正则兜底(三级降级策略)
- Pwn/CTF 工具链:GDB 批处理动态调试、ROPgadget、de Bruijn 溢出偏移计算、倒计时感知调试
- GSA 防御性审计:工具调用失败自动记录,同类失败 ≥3 次自动沉淀到技能库
- 时间感知调度:
/time设置倒计时,剩余 30s 自动切换极速模式
/undo [n]— 撤回最近 n 轮对话(默认 1),不影响已 Pin 的消息/compact— 轻量模型总结当前进度 → 清空历史(保留 Pin)→ 以摘要作为新会话首条消息/think <prompt>— 单次推理模式,自动切换至推理 Worker(ds-r1/qwq),用完恢复原模型/ping— 极简保活请求,刷新 API 缓存 TTL
- SQLite 驱动:
~/.pawnlogic/pawn.db,支持多会话保存与无缝加载 - 原生 RAG:
/memorize将高价值对话沉淀进本地知识库,跨会话自动注入 - 精准锁定:
/pin msg <n>防止关键消息被遗忘
- 支持 12 大厂商:Nous / OpenAI / DeepSeek / Qwen / ZhipuAI / SiliconFlow / OpenRouter / Moonshot / MiniMax / Groq / Xiaomi MiMo / Ollama
- 使用
/model命令无缝热切换,/setkey重新配置 API Key - 动态加载机制:未配置的 Key 不影响其他模型正常运行
/mode一键切换 USER 模式与 DEV 模式- USER 模式:极致简洁,所有原始 Traceback、Tool Call JSON、底层异常自动转为友好中文提示(如
❌ 系统忙,请稍后重试) - DEV 模式:极致透明,显示所有 Tool Call 详情、异步线程状态和原始响应
- 错误映射覆盖 10+ 种常见异常类型(ConnectionError / TimeoutError / PermissionError / FileNotFoundError 等)
./skills/目录存放领域专属技能文件夹(零配置:放一个.md即可)- Agent 执行任务前自动扫描技能目录,按文件名 + 内容关键词匹配评分
- 匹配到的技能全文注入系统提示词,Agent 按技能指令执行任务
- 与 GSA 全局技能存档互补:GSA 管理跨会话经验,本地技能管理项目级模板
check_service(port)— 通过 lsof 或/proc文件系统快速提取端口进程详情- 返回:PID、进程名、可执行文件路径、命令行、工作目录、关键环境变量、引用的动态库
- 用于侦察阶段确认目标服务运行环境,替代盲目执行
ps aux
/sp sync— 遍历./skills/下所有带.git的技能包,批量git pull同步更新/sp install <repo_url>— 从远程仓库一键安装新技能包(自动 clone + 权限修正 + 缓存刷新)- USER 模式下显示简洁进度,DEV 模式显示详细结果
StealthyFetcher.configure()全局预热:消除首次 fetch 的冷启动超时- 超时自动重试:间隔 2s → 5s → 10s,最多 3 次尝试
- 穿透 Cloudflare 5 秒盾、JS 渲染防护
PawnLogic 1.1 完整适配 2026 主流 API 生态,支持多模型动态热切换,覆盖从深度推理到毫秒级响应的全场景。原生支持 OpenAI Chat Completions 和 Anthropic Messages 两种 API 格式,通过 /provider 命令可添加自定义中转接口。
| 厂商 | 别名 | 推荐模型 ID | 格式 | 优势场景 |
|---|---|---|---|---|
| PawnLogic Engine | hermes / hermes405 |
NousResearch/Hermes-4-70B |
OpenAI | 框架原生优化,指令遵循极强 |
| OpenAI | gpt-4o / gpt-4o-mini |
gpt-4o |
OpenAI | 视觉+推理,需代理 |
| Anthropic | claude-opus / claude-sonnet / claude-haiku |
claude-opus-4-7 |
Anthropic | 旗舰推理 / 均衡性能 / 极速响应 |
| DeepSeek | ds-chat / ds-r1 |
deepseek-chat / deepseek-reasoner |
OpenAI | V3 性价比之王;R1 深度推理首选 |
| DeepSeek V4 | ds-v4-pro / ds-v4-flash |
deepseek-v4-pro |
OpenAI | Pwn 漏洞逻辑建模 / 毫秒级响应 |
| 智谱 AI | glm-5.1 / glm-4.7 / glm-4.5-air |
glm-5.1 |
OpenAI | 国内直连,国产推理旗舰 |
| 智谱 AI (视觉) | glm-4v |
glm-4v-plus |
OpenAI | Web 截图 / 隐写图片分析 |
| 通义千问 | qwen-max / qwen-3.0 |
qwen-3.0-max |
OpenAI | 强大长文本处理与代码纠错 |
| 硅基流动 | sf-ds-v3 / sf-qwen72b |
deepseek-ai/DeepSeek-V3 |
OpenAI | 开源模型低成本推理池 |
| Moonshot | kimi |
moonshot-v1-128k |
OpenAI | 超长上下文日志分析 |
| Groq | groq-llama3 |
llama-3.3-70b-versatile |
OpenAI | 极速:秒级生成 Exploit 脚本 |
| 小米 MiMo | mimo-v2.5-pro / mimo-v2.5 |
mimo-v2.5-pro |
OpenAI | 小米自研推理模型,国内直连 |
| 本地 Ollama | qwen-local |
qwen2.5-7b-instruct |
OpenAI | 离线靶机环境,零泄密风险 |
| 自定义 Provider | 任意别名 | 任意模型 ID | OpenAI/Anthropic | 自建中转接口,通过 /provider add 添加 |
CTF 场景推荐组合
- Pwn 漏洞开发 →
ds-r1或ds-v4-pro(深度推理)- Web 代码审计 →
ds-chat或glm-5.1(高性价比,长上下文)- 截图 / 隐写分析 →
glm-4v或gpt-4o(多模态视觉)- 极速脚本生成 →
groq-llama3(毫秒级响应)- 离线靶机环境 →
qwen-local(零网络依赖)- 旗舰推理 →
claude-opus(Anthropic 原生格式)
- 推荐:WSL2 / Ubuntu(满血体验)
- 可选:Windows(基础体验,不支持 Pwn 工具链)
由于现代 Linux 发行版(如 Ubuntu 24.04+)引入了 PEP 668 环境隔离机制,强烈建议使用虚拟环境 (venv) 进行部署,以避免破坏系统全局 Python 环境。
# 1. 克隆仓库
git clone [https://github.com/john0123412/PawnLogic.git](https://github.com/john0123412/PawnLogic.git)
cd pawnlogic
# 2. 创建并激活虚拟环境 (解决 pip externally-managed-environment 报错)
python3 -m venv venv
source venv/bin/activate
# 3. 安装核心依赖
pip install --upgrade pip
pip install -r requirements.txt
# 4. (可选) 安装 CTF/Pwn 实战工具链系统依赖
# sudo apt update && sudo apt install gcc g++ python3-dev libssl-dev libffi-dev build-essential
# 5. 配置 API Key(见下方说明)
cp .env.example .env
# 编辑 .env,填入你的 Key
# 6. 启动
python main.py通过 pawn.sh 启动器 + 符号链接,可在任意目录下直接输入 pawn 启动 PawnLogic,无需 cd 到项目目录。
pawn.sh 是一个智能启动器,每次执行时:
- 追踪真实路径:通过
readlink -f解析自身真实位置(即使通过符号链接调用),定位到项目根目录 - 激活虚拟环境:自动查找并激活
venv/或.venv/(优先venv/),确保所有 Python 依赖可用 - 环境检查:若无 venv 且系统缺少
nest_asyncio,给出明确安装指引 - 启动主程序:使用
exec python3 main.py "$@"替换当前进程,透传所有命令行参数
由于每次运行都重新解析路径和读取源文件,在项目目录中修改代码后立即生效,无需重新部署。
# 1. 确保 pawn.sh 有执行权限
chmod +x /home/johnny/scripts/agent/pawnlogic_1.0/pawn.sh
# 2. 创建全局符号链接(~/.local/bin 需已在 PATH 中)
ln -sf /home/johnny/scripts/agent/pawnlogic_1.0/pawn.sh ~/.local/bin/pawn
# 3. 验证:在任意目录下执行
cd /tmp && pawn --help任意目录输入 pawn
→ ~/.local/bin/pawn(符号链接)
→ /home/johnny/scripts/agent/pawnlogic_1.0/pawn.sh
→ readlink -f 定位项目根目录
→ source venv/bin/activate
→ exec python3 main.py "$@"
- 修改
scripts/agent/pawnlogic_1.0/下的任何文件(main.py、config.py、core/*等)后,下次运行pawn即使用最新代码 - 符号链接只需创建一次,之后无需重复操作
- 若
~/.local/bin不在 PATH 中,需先添加:export PATH="$HOME/.local/bin:$PATH"(加入~/.bashrc持久化)
注意:Windows 缺乏原生 Linux 命令,仅支持 Python 沙箱、网页搜索、文件修改和对话。不建议用于 Pwn 题或编译 C 语言。
-
安装 Python 3.10+
-
打开 PowerShell,设置 API Key 环境变量:
[System.Environment]::SetEnvironmentVariable('DEEPSEEK_API_KEY', 'sk-填写你的Key', 'User')
-
进入目录并运行:
cd D:\pawnlogic python main.py
Docker 容器化让 Agent 能在完全隔离的容器环境中执行代码,适用于 CTF 靶机 exploit 测试、多版本 libc 环境验证等场景。
# Ubuntu / WSL2
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
# 将当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
# 重新登录终端生效WSL2 用户注意:WSL2 默认没有 systemd,需要手动启动 dockerd:
sudo dockerd & # 或在 /etc/wsl.conf 中添加: # [boot] # systemd=true # 然后在 PowerShell 中运行: wsl --shutdown && wsl
# 在 PawnLogic venv 中安装
pip install docker启动 PawnLogic 后,运行 /docker status:
▶ You > /docker status
Docker 状态:
✓ Docker 连接正常
版本: 24.0.7
容器: 0 个 | 镜像: 5 个
存储: /var/lib/docker
# 方法 1:在 PawnLogic 终端内拉取
▶ You > /docker pull pwndocker
▶ You > /docker pull ubuntu18
# 方法 2:在系统终端拉取
docker pull skysider/pwndocker
docker pull ubuntu:18.04| 别名 | 镜像 | 用途 |
|---|---|---|
pwndocker |
skysider/pwndocker |
Pwn 全能靶机(含 GDB/pwntools/ROPgadget/checksec) |
ubuntu18 |
ubuntu:18.04 |
glibc 2.27,老题常用 |
ubuntu22 |
ubuntu:22.04 |
glibc 2.35,新题常用 |
kali |
kalilinux/kali-rolling |
Kali 渗透测试环境 |
python |
python:3.12-slim |
纯 Python 执行环境 |
gcc |
gcc:latest |
C/C++ 编译环境 |
方式 1:一次性容器(run_code_docker)
Agent 自动调用,代码执行完毕后容器自动销毁:
▶ You > 用 run_code_docker 在 pwndocker 容器中运行 exploit.py,断网模式
Agent 会自动:
- 拉取镜像(如果本地不存在)
- 将代码写入临时目录并挂载到容器
- 在容器内执行(默认断网
network=none) - 读取输出并销毁容器
方式 2:持久化容器(pwn_container)
适合需要多次交互的 Pwn 调试:
▶ You > 创建一个名为 heap-lab 的 pwndocker 容器,然后在里面运行 checksec
Agent 会自动:
pwn_container(action="create", name="heap-lab", image="pwndocker")pwn_container(action="exec", name="heap-lab", command="checksec /target/vuln")- 多次 exec 后:
pwn_container(action="destroy", name="heap-lab")
方式 3:手动管理(/docker 命令)
▶ You > /docker status # 查看 Docker 连接状态
▶ You > /docker images # 列出本地镜像
▶ You > /docker ps # 列出 PawnLogic 容器
▶ You > /docker pull pwndocker # 拉取指定镜像- 默认断网:
network=none,防止 CTF flag 泄露 - 资源限制:内存 512MB、CPU 0.5 核、PID 256
- 自动销毁:一次性容器执行后自动清理
- 危险命令拦截:Docker 内外共享同一套
DANGEROUS_PATTERNS黑名单
PawnLogic 对 Docker 采用优雅降级策略:
- 本地沙箱
run_code完全不受影响 run_code_docker/pwn_container会返回明确的安装指引/docker status会显示✗ Docker 不可用: 未安装 docker-py
第一步:复制模板
cp .env.example .env第二步:填入你的 Key
用任意编辑器打开 .env,按需填写。不用的厂商直接留空,不影响其他模型运行。
第三步:启动
python main.py
# 或指定起始模型
python main.py --model ds-r1# ════════════════════════════════════════════════════════
# PawnLogic 1.1 — API Key 配置
# 复制本文件为 .env,填入对应 Key,不使用的厂商留空即可。
# 警告:.env 含敏感凭证,已加入 .gitignore,切勿提交至版本库。
# ════════════════════════════════════════════════════════
# ── PawnLogic 默认引擎(Nous Research)──────────────────
PAWN_API_KEY=your_nous_api_key_here
# ── OpenAI ──────────────────────────────────────────────
OPENAI_API_KEY=sk-...
# ── DeepSeek(V3 日常 / R1 深度推理 / V4 前沿)──────────
DEEPSEEK_API_KEY=sk-...
# ── 通义千问 Qwen(阿里云百炼)─────────────────────────
QWEN_API_KEY=sk-...
# ── 智谱 GLM(含视觉模型 glm-4v-plus)──────────────────
ZHIPU_API_KEY=your_zhipu_api_key_here
# ── 硅基流动 SiliconFlow ───────────────────────────────
SILICON_API_KEY=sk-...
# ── OpenRouter(多模型聚合网关,可选)──────────────────
OPENROUTER_API_KEY=sk-...
# ── Moonshot (Kimi) ─────────────────────────────────────
MOONSHOT_API_KEY=sk-...
# ── MiniMax (海螺) ───────────────────────────────────────
MINIMAX_API_KEY=your_minimax_api_key_here
# ── Groq(极速推理)────────────────────────────────────
GROQ_API_KEY=gsk_...
# ── 小米 MiMo ──────────────────────────────────────────
XIAOMI_API_KEY=your_xiaomi_api_key_here
# ── 本地 Ollama(无需 Key,自定义端口时修改 URL)────────
# LOCAL_API_URL=http://localhost:11434/v1/chat/completions
# LOCAL_API_KEY=
# ── Anthropic (Claude) ──────────────────────────────────
ANTHROPIC_API_KEY=sk-ant-...启动后使用 /keys 命令即时检查各厂商的 Key 配置状态:
You > /keys
Provider Env Var Status
────────────────────────────────────────────
PawnLogic Engine PAWN_API_KEY ✅ 已配置
OpenAI OPENAI_API_KEY ❌ 未配置
DeepSeek DEEPSEEK_API_KEY ✅ 已配置
Qwen QWEN_API_KEY ✅ 已配置
ZhipuAI ZHIPU_API_KEY ✅ 已配置(视觉可用)
SiliconFlow SILICON_API_KEY ❌ 未配置
Moonshot MOONSHOT_API_KEY ✅ 已配置
Groq GROQ_API_KEY ✅ 已配置
Xiaomi MiMo XIAOMI_API_KEY ✅ 已配置
Local Ollama LOCAL_API_KEY ⬜ 无需 Key
使用 /model <别名> 切换,例如:
/model ds-r1 # 切换至 DeepSeek R1 深度推理
/model claude-sonnet # 切换至 Claude Sonnet(Anthropic 原生格式)
/model glm-4v # 切换至智谱视觉模型,可传入截图分析
/model groq-llama3 # 切换至 Groq 极速模式
/model qwen-local # 切换至本地 Ollama,断网也能用PawnLogic 原生支持 OpenAI Chat Completions 和 Anthropic Messages 两种 API 格式,可通过 /provider 命令添加自建中转接口或其他第三方 API。
/provider # 打开交互式 Provider 管理面板
/provider list # 列出所有 Provider 状态(含格式标记)
/provider add # 添加自定义 Provider(引导式配置)
/provider remove <n> # 删除自定义 Provider
/provider test <model> # 测试 Provider 连通性添加自定义 Provider 示例:
You > /provider add
Provider 名称: my_relay
API 格式: [1] OpenAI / [2] Anthropic → 1
Base URL: https://my-relay.com/v1/chat/completions
API Key: ****
模型 ID: gpt-4o
模型别名: my-gpt
✓ Provider 'my_relay' 已添加
使用: /model my-gpt
安全说明:
- API Key 仅存入
.env文件(已加入.gitignore,不会被提交) - 结构化配置存入
~/.pawnlogic/custom_providers.json(项目目录外,不含 Key) - 所有 Key 通过环境变量读取,代码中零硬编码
启动终端后,你会看到 You > 提示符。可以像使用 ChatGPT 一样直接对话,也可以使用 / 开头的快捷命令。
/mode— 切换 USER / DEV 输出模式(USER 屏蔽底层错误,DEV 显示所有细节)/model [alias]— 切换大模型(如/model glm-5.1)/setkey— 重新运行 API Key 配置向导/keys— 显示各 Provider Key 配置状态/clear— 清空历史对话释放 Token(保留已 Pin 消息和项目 State)/cd <path>— 切换 Agent 的工作目录/file ./test.py— 将某个文件一次性载入到对话上下文/undo [n]— 撤回最近 n 轮对话(默认 1)/compact— 压缩上下文(轻量模型总结 + 清空历史)/think <prompt>— 单次推理模式(自动切换推理 Worker)/ping— 保活请求,刷新缓存 TTL
/init_project [目标描述]— 初始化当前目录的.nous_state.md,开启自动化工程流水线/state— 查看当前项目的总体规划/memorize [主题]— AI 总结当前对话并永久存入 SQLite 知识库/knowledge [query]— 搜索/列出知识条目/forget <id>— 删除指定知识条目
/history— 查看带序号的历史记录/pin msg <n>— 精准固定第 n 条消息,防止被遗忘/save [项目名]— 保存当前对话进度到数据库/sessions— 列出所有会话/load <name|n>— 加载历史会话(名称子串/序号)/resume [n]— 恢复会话并显示对话历史(最近消息完整展示,更早消息折叠)/rename <n> <name>— 重命名已保存会话/del <name|n>— 删除指定会话
/chat list [n]— 列出最近 n 个会话(默认20)/chat view <id|n>— 查看某个会话的完整对话内容/chat export <id|n> [文件路径]— 导出对话为 Markdown 文件/chat find <关键词>— 跨所有会话全文搜索内容/chat tag <id|n> <标签>— 给会话打标签(逗号分隔)/chat untag <id|n> <标签>— 移除会话标签/chat bytag <标签>— 按标签筛选会话/chat link <id1> <id2> [备注]— 关联两个会话/chat unlink <id1> <id2>— 取消关联/chat related <id|n>— 查看与指定会话相关联的所有会话
/low— 日常闲聊/简单问答(tokens=4k, ctx=40k, iter=10)/mid— 开发编程/脚本编写(tokens=8k, ctx=150k, iter=30)← 默认/deep— 论文阅读/大型项目重构/复杂漏洞挖掘(tokens=32k, ctx=400k, iter=50)/max— 极限火力:大规模自动化利用链/超长会话(tokens=32k, ctx=600k, iter=100, 60min)/normal— 重置到 /mid
/tokens /ctx /iter /toolsize /fetchsize <n>— 调整具体参数/limits— 查看所有当前限制
/webstatus— Jina / Pandoc / Lynx 状态/browserstatus— Scrapling 浏览器工具状态/pwnenv— CTF 工具链完整性检查
/docker status— 查看 Docker 连接状态/docker images— 列出本地镜像/docker ps— 列出 PawnLogic 管理的容器/docker pull <镜像>— 拉取指定镜像(支持别名如pwndocker)
/time— 查看当前时间预算、已用时间、剩余时间/time <秒数>— 设置时间预算(如/time 300= 5 分钟)/time 0— 关闭时间限制- 剩余 <30s 时自动触发 URGENT_MODE(跳过 Plan、切极速模型、压缩输出)
/worker— 显示子任务 Worker 候选模型菜单(带 Key 状态)/worker <alias>— 手动锁定子任务使用的模型/worker auto— 恢复自动路由(按优先级选取首个可用小模型)
/failures— 查看最近 20 条工具调用失败记录/failures <N>— 查看最近 N 条/failures clear— 清空所有失败记录- Agent 执行
run_code/run_shell/run_interactive前自动检查历史失败
/memo [内容]— 手动存档技能:AI 自动分类并写入~/.pawnlogic/global_skills.md/memo— 不带参数:对当前对话最后一轮 AI 回复进行存档/skills— 查看global_skills.md的分类目录/skills view— 查看global_skills.md全部内容(分页)/skills path— 显示技能文件路径
./skills/目录存放技能包文件夹(零配置:放一个.md即可,可选manifest.json)- Agent 根据任务关键词自动匹配并注入相关技能
/sp或/skillpack— 列出所有本地技能包/sp rescan— 清除缓存,重新扫描 skills/ 目录/sp sync— 同步所有带.git的技能包(批量 git pull)/sp install <url>— 从远程仓库安装新技能包/sp <名称>— 查看指定技能包详情(关键词、触发词、脚本)
check_service(port)— 检查指定端口上运行的服务进程详情- 返回:PID、进程名、可执行文件路径、命令行、工作目录、环境变量、动态库
- 侦察阶段自动调用,替代盲目执行
ps aux
You >
/init_project写一个带权限控制的 FastAPI 用户管理系统。
Agent 会先读取项目状态,输出严格的 <plan>,规划好 models.py、auth.py 等模块,并写好 <verify> 验证脚本。每写完并验证通过一个文件,就会在后台静默执行 git commit。你去喝杯咖啡,回来就是一个功能完整且自带版本记录的完美仓库。
You > 看看这张截图
./error_log.png,帮我用delegate_task委派子 Agent 搜索报错解决方案,然后写个修复脚本。
Agent 调用 analyze_local_image 读取图片转 Base64 喂给视觉模型提取报错文本,启动纯净子会话独立执行全网搜索与代码编写,最后把完美的解决方案返回给主聊天窗口。
You > 分析
./vuln_pwn。找到栈溢出偏移量,并使用pwn_debug在main函数下断点观察。
Agent 自动检测环境,调用 checksec、使用 de Bruijn 生成特征序列、自动编写 GDB 批处理脚本进行动态调试并返回寄存器状态。
You >
/mode(切换到 USER 模式)You > 运行
./broken_script.py
Agent 执行失败,终端只显示:❌ 系统忙,请稍后重试(无 Traceback、无 JSON 轰炸)。
You >
/mode(切回 DEV 模式)You > 再次运行
./broken_script.py
终端完整展示 Traceback、工具调用 JSON、异步线程状态——开发者可精准定位问题。
You > 扫描 http://target.com:8080,找到漏洞并利用
Agent 自动执行完整 P6 流程:
- 侦察:
web_fetch获取页面指纹,识别框架(如 Shiro) - 环境确认:
check_service(port=8080)提取进程信息(Java/Tomcat) - 武器检索:
search_skills(query='Shiro')匹配本地技能包 - 同步更新:提醒
/sp sync或/sp install获取最新利用脚本 - 执行:运行技能包内的预置 exploit 脚本
- 验证:确认回显/Flag,调用
bump_skill提升技能权重
全程 USER 模式只显示简洁进度,DEV 模式显示每个工具调用细节。
/chat find Python 爬虫 # 搜索所有包含关键词的会话
/chat tag 3 爬虫项目,学习笔记 # 给第3个会话打标签
/chat bytag 爬虫项目 # 筛选所有该标签的会话
/chat link 3 5 "同一项目的不同阶段" # 关联两个相关会话main.py— 入口与 Slash 命令解析config.py— API、预设参数、MoE 阶段路由、黑白名单配置core/session.py— 核心调度环(Agentic Loop)、流式解析、工具注册core/memory.py— SQLite 数据库管理与 RAG 检索core/persistence.py— 会话持久化管理core/gsa.py— 全局技能存档管理core/skill_manager.py— SkillScanner 技能包扫描、匹配、同步、安装引擎core/logger.py— loguru 双端日志系统tools/— 工具库file_ops.py— 文件操作(读/写/补丁/Shell)web_ops.py— 网页搜索与抓取browser_ops.py— Scrapling 反爬浏览器武器库(StealthyFetcher + Patchright)recon_ops.py— 环境嗅探(check_service:端口→进程详情)sandbox.py— 多语言代码沙箱docker_sandbox.py— Docker 容器化执行pwn_chain.py— CTF/Pwn 工具链(GDB/ROP/libc/one_gadget)vision.py— 多模态视觉分析delegate_tool.py— 无污染子任务委派
skills/— 本地技能包目录(文件夹模式,含 skill.md + 可选 manifest.json + 脚本)
pawn.db— 核心 SQLite 数据库(含sessions、messages、knowledge表)global_skills.md— 全局技能存档文件sessions/— 会话文件存储目录
Agent 内置严格的软隔离保护:
- 读保护:禁止读取
~/.ssh、~/.gnupg、/etc等敏感凭证目录 - 写保护:禁止向
/bin、/boot、/lib、/sys等系统关键路径写入文件 - 高危命令拦截:内置正则拦截
rm -rf /、mkfs、dd if=等毁号操作 (如有需求,请在config.py的WRITE_BLACKLIST中自行放开)
自定义 Provider 与双格式 API 原生支持
- ✅ 原生支持 OpenAI Chat Completions 和 Anthropic Messages 两种 API 格式
- ✅ Anthropic 原生接入:
claude-opus-4-7、claude-sonnet-4-6、claude-haiku-4-5 - ✅
/provider命令面板:交互式添加/删除/测试自定义 Provider - ✅ 自定义 Provider 配置持久化至
~/.pawnlogic/custom_providers.json(不含 Key) - ✅ API Key 安全存储:仅存
.env(已 gitignore),通过环境变量注入 - ✅
/model显示格式标记:[A]= Anthropic 格式
会话管理增强
- ✅
/rename <序号> <新名称>— 重命名已保存会话 - ✅
/resume恢复会话时自动显示对话历史 - ✅ 对话历史智能展示:最近 6 条完整显示,更早消息折叠为摘要
P0 — 安全加固与防御性审计
- ✅ 修复 git commit 命令注入(web_ops.py 改用 subprocess 列表形式)
- ✅ 沙箱环境变量隔离(剔除所有 API Key)
- ✅ 危险模式扩展(fork bomb / reverse shell / curl|sh 等 14 种)
- ✅ 语义级失败判定(检测 Traceback / Segfault / exit code 等 20+ 信号)
- ✅ 投前审计:
run_code/run_shell/run_interactive执行前自动检查历史失败 - ✅ 失败自动记录 + 同类失败 ≥3 次自动沉淀到
global_skills.md - ✅
audit_payload工具 +/failures命令
P1 — 时间感知调度
- ✅ 三档预设新增
time_budget_sec(LOW=5min / MID=10min / DEEP=30min) - ✅ URGENT_MODE:剩余 <30s 自动触发极速模式(跳过 Plan、切模型、压缩输出)
- ✅
/time命令:查看/设置时间预算 - ✅
pwn_timed_debug工具:倒计时感知的 CTF 交互式调试
P2 — CLI UX 终端体验升级
- ✅
prompt_toolkit集成:FuzzyCompleter 模糊匹配 + Fish-style 灰色内联提示 - ✅ CC 风格内联模型选择器(上下键 + Enter 确认 + Esc 取消 + 数字键跳转)
- ✅
richMarkdown 渲染(代码块高亮 + 表格对齐) - ✅ 底部状态栏(模型 / 档位 / 目录 / Phase 实时显示)
- ✅ 模糊命令修正(
/modle→/model,相似度 ≥0.7 自动修正) - ✅ Windows 兼容(readline / prompt_toolkit 安全导入)
P3 — Docker 动态容器化
- ✅
run_code_docker工具:一次性容器执行(创建 → 执行 → 销毁) - ✅
pwn_container工具:持久化容器管理(create / exec / destroy / list) - ✅ 6 个预设镜像别名(pwndocker / ubuntu18 / ubuntu22 / kali / python / gcc)
- ✅ 默认断网 + 资源限制(512MB / 0.5 核 / PID 256)
- ✅
/docker命令(status / images / ps / pull) - ✅ Docker 不可用时优雅降级,不影响本地沙箱
P6 — 双模输出与技能引擎
- ✅
/mode命令:一键切换 USER / DEV 输出模式 - ✅ USER_MODE 错误屏蔽:10+ 种常见异常自动转为友好中文提示
- ✅
user_friendly_error()统一错误映射函数 - ✅
./skills/本地技能目录:Agent 按关键词自动检索匹配的领域技能 - ✅
_scan_local_skills()技能扫描引擎(文件名 + 内容评分排序) - ✅ 技能全文动态注入系统提示词
P6 — 自动化利用链架构升级
- ✅ Scrapling 启动优化:
StealthyFetcher.configure()全局预热,消除冷启动超时 - ✅
web_fetch超时自动重试:间隔 2s → 5s → 10s,最多 3 次 - ✅
check_service(port)环境嗅探工具:lsof/proc 提取端口进程详情(PID/路径/环境变量/动态库) - ✅
/sp sync全球技能包同步:批量 git pull 所有带 .git 的技能包 - ✅
/sp install <url>远程技能包安装:git clone + 权限修正 + 缓存刷新 - ✅ P6 流程闭环:侦察 → check_service → search_skills → install/sync → 执行
- ✅
check_service注册到 RECON/GENERAL/WEB_PEN 阶段,只读操作跳过 plan 检查
P6 — CC 风格交互 & 成本微操
- ✅ Ctrl+C 回退编辑:输入状态下 Ctrl+C 撤回最后一轮对话,将用户文本作为 default 重新编辑(对齐 Claude Code 体验)
- ✅
/undo [n]物理删除尾部消息对,不影响 Pin - ✅
/compact轻量模型总结 → 清空历史 → 摘要作首条消息 - ✅
/think <prompt>单次推理模式,自动切换推理 Worker(ds-r1/qwq) - ✅
/ping极简保活请求,刷新 API 缓存 TTL - ✅
utils/ansi.py新增Spinner类:USER_MODE 下 Loading 动画(braille 点阵旋转) - ✅ System Prompt 精简:P6 协议改为祈使句风格,技能注入格式压缩
P7 — API 鲁棒性与逻辑刷新
- ✅ API 空响应重试:自定义
APIEmptyResponseError+ 指数退避(2s→4s→8s,最多 3 次),空响应不再静默退出 - ✅ Logic Refresh 模块:每 20 轮自动触发阶段性总结,提炼关键发现与排除路径
- ✅ 冗余数据清理:自动压缩重复的短报错信息(No such file / Permission denied 等)
- ✅ Anti-Loop 检测:连续 3 次相同命令+相同错误 → 注入绕过提示(软链接/open_basedir/路径编码)
- ✅ Shell 环境持久化:自动探测 HOST_IP、缓存代理变量,所有 shell 调用继承
- ✅ 路径自动建议:文件未找到时提示
find / -name、/proc/self/cwd、readlink -f - ✅ 超时信号捕获:Popen + 进程组 → SIGTERM → 等待 → SIGKILL,收集部分输出
- ✅
/max极限档位:iter=100, ctx=600k, 60min 时间预算,适配大规模自动化利用链
基础改进
- ✅ 新增小米 MiMo 厂商接入(4 个模型)
- ✅
/worker子任务模型选择命令 - ✅ FTS5 全文搜索引擎
- ✅ 审计日志系统(
~/.pawnlogic/logs/audit_*.jsonl) - ✅ 版本号统一为 1.1
- ✅
requirements.txt依赖声明
- ✅ 新增
/chat会话管理命令系列:浏览、搜索、标签、关联历史对话 - ✅ 增强 SQLite 数据库:新增会话标签、关联、全文搜索功能
- ✅ 2026 全生态模型接入:DeepSeek V4、GLM-5.1、Qwen 3.0、Groq、Moonshot 等
- ✅ 优化配置向导:支持 12 大厂商 API Key 配置
- ✅ 新增智谱 AI 视觉模型支持:
glm-4v-plus国内直连 - ✅ GSD 企业级工程架构 · 多模态视觉 · SQLite 持久化 · RAG 知识库 · 多语言沙箱 · CTF/Pwn 工具链
Q: 如何切换模型?
A: 使用 /model 命令,如 /model ds-v4-pro 切换到 DeepSeek V4 Pro。
Q: 如何查看所有可用的模型?
A: 启动时会显示模型列表,或使用 /help 查看。
Q: 如何备份我的会话?
A: 使用 /chat export <id> ./backup.md 导出为 Markdown 文件。
Q: 如何找到之前的某个项目?
A: 使用 /chat find <关键词> 全文搜索,或 /chat bytag <标签> 按标签筛选。
Q: Agent 运行缓慢怎么办?
A: 使用 /low 切换低算力模式,或 /model groq-llama3 切换至 Groq 极速引擎,或 /clear 清空上下文释放 Token。
Q: 如何查看系统状态?
A: 使用 /limits 查看当前配置,/pwnenv 检查工具链完整性。
Q: Docker 连不上怎么办?
A: WSL2 用户需要手动启动 Docker:sudo dockerd &,或在 /etc/wsl.conf 中启用 systemd。运行 /docker status 查看具体错误。
Q: Docker 镜像拉取太慢怎么办?
A: 配置 Docker 镜像加速器(如阿里云)。在 /etc/docker/daemon.json 中添加 {"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]},然后 sudo systemctl restart docker。
Q: 不装 Docker 能用 PawnLogic 吗?
A: 完全可以。Docker 是可选功能,本地沙箱 run_code 不受影响。run_code_docker 和 pwn_container 会返回安装指引。
Q: 如何用 Docker 跑不同版本 libc 的 Pwn 题?
A: 使用 ubuntu18(glibc 2.27)或 ubuntu22(glibc 2.35)镜像:/docker pull ubuntu18,然后让 Agent 用 run_code_docker(image="ubuntu18", ...) 执行。
Q: USER 模式和 DEV 模式有什么区别?
A: /mode 切换。USER 模式屏蔽所有原始报错,只显示友好中文提示(如 ❌ 系统忙,请稍后重试),适合演示和日常使用。DEV 模式显示完整 Traceback、Tool Call JSON 和底层日志,适合开发调试。
Q: 如何撤回上一轮对话?
A: 使用 /undo 撤回最近 1 轮,或 /undo 3 撤回最近 3 轮。在输入状态下按 Ctrl+C 也可快速撤回。
Q: 上下文快满了怎么办?
A: 使用 /compact 让轻量模型总结当前进度并清空历史,或 /clear 直接清空。/compact 会保留 Pin 消息和总结摘要。
Q: 如何让 Agent 深度推理?
A: 使用 /think <你的问题>,自动切换至推理模型(ds-r1/qwq),用完恢复原模型。
Q: 如何添加自定义技能?
A: 在 ./skills/ 目录下创建文件夹,放入 skill.md(或 guide.md),系统自动从文件名和标题提取关键词。也可添加 manifest.json 补充元数据。详见 skills/README.md。
Q: 如何同步社区最新的利用脚本?
A: 使用 /sp install <repo_url> 从 GitHub 安装技能包,或 /sp sync 批量更新已有的 .git 技能包。
Q: check_service 工具安全吗?
A: 完全安全。它是只读操作,仅通过 /proc 或 lsof 读取进程信息,不修改任何系统状态。已加入 _PLAN_EXEMPT_TOOLS,跳过 plan 检查。
Q: 时间预算用完了会怎样?
A: Agent 自动终止当前任务,输出已收集的结果。建议根据任务复杂度设置合理预算:/time 300(5 分钟)适合简单任务,/time 1800(30 分钟)适合复杂项目。
- GitHub: PawnLogic 项目仓库
- 文档: 查看本 README 和代码内注释
- 问题反馈: 请通过 GitHub Issues 提交
祝您使用愉快! 🚀