找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3604

积分

0

好友

470

主题
发表于 19 小时前 | 查看: 3| 回复: 0

维护一个 AI Agent 系统(比如昵称为“龙虾”的系统),本质上是一个将个人工作方式工程化、产品化的过程。它旨在创造一个可复制、可升级、可协作的数字分身。你如何思考,你的行为习惯,日常工作流,已掌握的技能,乃至你希望未来具备的能力,都可以在这个系统中得到映射和实现。以往,使用同样的工具链需要不断重复尝试、思考与手动操作。而现在,你只需要完成一次“尝试-思考-落地”的闭环,剩下的重复性工作便可以交给你的 Agent 分身去持续执行。

更具体地说,这套系统像是在把你脑中的工作模式拆解为三类“可移植资产”:

1. 分身的性格与原则:你习惯如何处理问题?

  • memory/USER.md: 你的个人偏好(例如偏好的输出格式、默认工作环境、你的禁忌、你需要何种证据支持)。
  • memory/SOUL.md: 你的工作纪律(例如必须形成证据链、禁止主观臆测、结论必须可复现)。
    这部分决定了你的分身“像不像你”。

2. 分身的知识与套路:你如何进行判断与问题定位?

  • memory/PATTERNS.md: 漏洞模式库、逆向工程套路、问题分类检查清单、Hook策略等。
  • 针对特定角色的 agents/*/memory/PATTERNS.md: 将通用模式细化为角色专属知识(例如针对 selRef/ADRP+ADD 的识别模式、对 JEB 调用图封装的自动化识别)。
    这部分决定了你的分身“强不强”,以及能否有效地复用历史经验。

3. 分身的肌肉与手:你如何实际操作与执行?

  • skills/ 目录 + MCP (Model Context Protocol): 对 adb、JEB、IDA、frida、git 以及各类脚本工具链的封装与调用能力。
    这部分决定了你的分身“能不能真的替你干活”。

1. 龙虾的 Agent 是什么?

一个 Agent 代表一个具体的“人”或“角色”。这个 Agent 具备以下核心特性:

  • 有职责:明确知晓自己的身份和任务目标。
  • 有记忆:拥有 MEMORY.md(长期记忆)和 ACTIVE_CONTEXT.md(短期记忆/上下文)。
  • 会思考:背后由大语言模型(LLM)驱动决策与推理。
  • 有技能skills 是技能描述,而 tools 则是技能的具体实现。

2. 为什么采用这样的设计?

  • 限制复杂度:更贴近人类解决复杂问题的思维方式,即“分而治之”,将大问题拆解为小问题。
  • 方便协作:模拟真实世界中团队协作的模式,不同职责的 Agent 可以像团队成员一样分工合作。

3. 如何设计一个优秀的 Agent?

  • 单一职责:一个 Agent 最好只专注于解决一类问题,例如 App 攻击面分析、PoC 生成、静态分析或动态验证。
  • 方便解析:输出结果应尽可能结构化、格式化,如 JSON、YAML,以便被下游的 Agent 或系统直接消费。
  • 结构清晰:一个 Agent 至少应包含以下组成部分:
    • agent.mdagent.yaml: 描述 Agent 的职责(做什么/不做什么)、输出格式、失败处理策略等。

4. Agent 设计模式

人设模式 (Persona)

顾名思义,此类 Agent 被赋予一个具备特定专业能力的角色身份。

id: attack-surface
name: Attack Surface Analyst
role: 分析组件导出、Intent 路径、PendingIntent 注入风险
skills:
- adb
- manifest-parser
- diff-analyzer
memory:
- attack_surface_patterns.md

工具型 Agent

一组特定工具的封装,例如 jeb-agent, ida-agent, frida-agent。有时这种模式也可以简化为 skills 直接提供。

流程型 Agent (Pipeline)

用于执行具有固定步骤的工作流,例如漏洞分析流水线。

pipeline-agent:
- step1: collect commits
- step2: analyze diff
- step3: classify vulnerability
- step4: generate poc
- step5: generate report

5. Memory 分层设计

前文主要讨论了多 Agent 环境下的架构与职能划分。在 Agent 系统中,Memory(记忆)同样关键,且需要分层设计。核心原因在于:不同类型的信息,其生命周期、稳定性和使用频率截然不同。

不同信息的“生命周期”差异

AI 记忆系统实际上管理着三种不同寿命的信息:

类型 生命周期 事例
长期稳定 几个月/几年 用户偏好、长期研究方向(例如“一名资深的移动安全研究员”)
半稳定 几周/几月 技术模式、漏洞利用模式
短期 一次任务/会话 本次分析任务的详细记录、当前会话的上下文、使用的大模型及代理配置等

一个简单的目录结构示例如下:

memory/
   USER.md
   PATTERNS.md
   DAILY/

分层设计的核心优势

  1. 避免上下文污染:防止短期、临时的信息污染长期稳定的核心知识。
  2. 减少 Token 成本:每次会话的 Prompt 中只需纳入必要的 Memory,避免携带全量历史数据。
  3. 适应不同 Agent 需求:每个 Agent 可能有其专属的知识库和 Prompt,Memory 系统需要与之适配。
  4. 防止记忆过时:便于对半稳定和长期记忆进行单独管理和更新。
  5. 方便自动学习:系统可以将验证成功的模式(如某种新的漏洞模式)自动归档到 PATTERNS.md 中。
  6. 快速启动与行为一致性:使 Agent 能基于清晰、稳定的记忆快速进入工作状态,并防止其行为因杂乱的日志信息而发生“漂移”。

因此,结合个人研究方向和习惯,一个更完善的 Memory 目录结构可以是:

memory/
   USER.md        # 长期:个人偏好
   SOUL.md        # 长期:核心原则与纪律
   PATTERNS.md    # 半稳定:通用模式
   ANDROID_PATTERNS.md # 半稳定:平台专属模式
   IOS_PATTERNS.md
   DAILY/         # 短期:日常会话记录

6. 实战案例:我的“龙虾”骨架

针对我个人的日常安全分析工作流,我构建了如下所示的系统骨架:

~/.openclaw/workspace/
  AGENTS.md       # Agent 总览清单
  SKILLS.md       # 全局技能清单
  memory/         # 全局记忆系统
    USER.md
    SOUL.md
    PATTERNS.md
    DAILY/
      2026-03-03.md

agents/                     # 各职能 Agent
    00-orchestrator/        # 调度员
      agent.yaml
      persona.md
      memory/               # Agent 私有记忆
        NOTES.md
        DAILY/
          2026-03-04.md

    10-diff-triage/         # 差异分析员
      agent.yaml
      persona.md
      memory/
        PATTERNS.md         # 专属模式库
        NOTES.md
        DAILY/
          2026-03-04.md

    20-attack-surface/      # 攻击面分析师
      agent.yaml
      persona.md
      memory/
        PATTERNS.md
        NOTES.md
        DAILY/
          2026-03-04.md

    30-poc-designer/        # PoC 设计师
      agent.yaml
      persona.md
      memory/
        PATTERNS.md
        DAILY/
          2026-03-04.md

    40-jeb-runner/          # JEB 执行器
      agent.yaml
      persona.md
      memory/
        PATTERNS.md
        NOTES.md
        DAILY/
          2026-03-04.md

    50-native-ios-ida/      # iOS/IDA 分析员
      agent.yaml
      persona.md
      memory/
        PATTERNS.md
        NOTES.md
        DAILY/
          2026-03-04.md

    60-frida-runtime/       # Frida 运行时
      agent.yaml
      persona.md
      memory/
        PATTERNS.md
        NOTES.md
        DAILY/
          2026-03-04.md

全局记忆workspace/memory/)包含的是通用知识,如个人偏好、通用分析思路和方法论,通常与具体的技术领域无关。而各个 Agent 的私有记忆则与特定的专业知识强相关,并包含其执行任务的局部日志。通过这样的架构,我们既能保持核心工作原则的一致性,又能让每个专业分身在其领域内不断深化和积累经验。

这种将人的思维与工作模式“代码化”、“资产化”的实践,正是构建高效、可复现 AI 工作流的核心。如果你也在探索类似的 Agent 系统设计,欢迎来 云栈社区 交流心得。




上一篇:公积金缴存比例5%和12%怎么选?算完这笔账你就懂了
下一篇:JDK 26 JEP 530深度解析:原始类型模式匹配的使用与陷阱
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-5 22:49 , Processed in 0.389795 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表