封面 https://www.pixiv.net/artworks/133723106
记录一下可能是自己毕设的东西
Vibe-Coding产物 可喷()
一个渗透测试用的Agent
基于LangGraph+streamlit Plan-and-Execute
Day1
先了解了一下LangGraph
框架
自己先做了一个简单的架构
START → chatbot → END然后改了改变成:
用户输入 → Planner 拆任务 → ReAct 执行 → Search/Fetch 辅助 → Synthesizer 汇总 → 返回用户Plan-and-Execute + ReAct
Planner(拆 2–5 个小任务)
-
ReAct Executor(每个小任务最多 5 轮:analyze / search / fetch / final / refuse) -
条件循环直到小任务做完
-
Synthesizer(汇总最终回复)
两个 SubAgent
SearchSubAgent(公开搜索)
- 默认用 Bing 搜索页
requests+trust_env=False,避免系统坏代理- 配置:
SEARCH_TIMEOUT、SEARCH_PROXY
WebFetchSubAgent(公开网页抓取)
- 只允许 http/https,拒绝 localhost、内网 IP、非公开解析
- 抽取 HTML 正文 + 页面链接列表(
Links discovered on page) - 配置:
FETCH_TIMEOUT、FETCH_MAX_CHARS、FETCH_PROXY

Day2
增加了三个小工具
增加了curl,ssh,netcat功能
curl
curl运行正常

模型切换
现在可以在deepseek-v4-pro和deepseek-v4-flash之间切换

日志+普通对话快速回复
一句”你好”在之前都会经过漫长的Planner + ReAct + Synthesizer,耗时26.3s才会回复一次。
现在加了一个 fast path:对明显普通对话/自我介绍类请求,跳过Planner + ReAct + Synthesizer,只做一次 LLM 调用。同样请求降到约 3.0s。(不过我感觉这没什么用就是了)

对话耗时和执行摘要展示
新增显示每轮对话耗时和现实执行流程展示


对话保存
增加了历史任务切换

Day3
RAG
已在现有框架上接入一个 Agentic RAG MVP。
主要做了这些:
- 新增
RAGSubAgent:读取knowledge/下的.md/.txt本地知识库,按段落切块并做关键词检索。 - ReAct 新增
ragaction:现在 action 支持analyze | rag | search | fetch | curl | netcat | ssh | final | refuse。 - Planner/ReAct/Synthesizer prompt 已更新:方法论、检查清单、报告模板、历史案例、项目资料会优先走本地 RAG,不足时再
search/fetch。 - 执行过程已接入
trace_events:WebUI 的“查看执行过程”会显示RAGSubAgent命中的本地文档。 - 新增默认知识库:
knowledge/README.mdknowledge/checklists/web-pentest-baseline.md
- 新增配置项:
RAG_KNOWLEDGE_DIR=knowledgeRAG_TOP_K=5RAG_CHUNK_CHARS=1200RAG_MAX_RESULTS_CHARS=5000
- README 已更新 Agentic RAG 流程和使用说明。
验证结果:
app.py语法检查通过:syntax ok- 直接调用
RAGSubAgent().run("Web 渗透测试检查清单")能命中knowledge/checklists/web-pentest-baseline.md
说明:这一版是无额外依赖的本地检索 MVP,不是向量库版。优点是稳定、轻量、马上可用;后续可以升级为 Chroma/FAISS + embedding + rerank
数据库中有的md命中良好 但是和WebSearch结合度一般


Day4
Kali
把 Kali 装进 Docker,用 MCP kali_exec ,Agent 通过 KaliSubAgent 发命令、拿结果
且删除了curl ssh netcat 三个SubAgent 换成KaliSubAgent
不走 Kali 的(仍在宿主机):
rag— 本地知识库search— 公开搜索fetch— 抓取公开网页

且已经能够做一些CTF题目了




感觉挺有意义的一刻
Day5
UI重构
重新做了一份UI 将streamlit改成类似PentAGI的UI

现在在右侧可以看到kali terminal运行的命令、Tasks、Agents
上下文完善
第一轮回话告诉他任务 第二轮对话让它继续他会忘记任务
在session_context 注入每轮 prompt



日后
附件题
多轮迭代
…
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时












