我的 Agent 架构 1.0

本文档记录我当前使用的 Agent 架构情况,以便后续查阅、修改与调整。

1. 在 OpenClaw 上的 Agent

目前,在 OpenClaw 上共有 4 个 Agent 分别是:

Agent ID飞书机器人概述
mainMike默认主 agent,主要有三个功能:
* 作为主 agent ,有非常完整的权限管理系统
* 作为管理日历的入口,日常日历会从这里添加
* 作为备忘录/记事本入口,日常的零散记录入口在这里
englishEcho个人英语使用相关的Agent,可以自动添加单词到词表中
family-magazineMaga这是一个之前尝试制作个人家庭杂志的 Agent
openclaw-codexClark该 Agent 可以在本地执行 Codex 去完成 long-running 任务

这里的飞书机器人命令,故意使用了 Agent ID 的第一个字母,还比较有意思。其中,“Clark” 是 Superman 的名字,希望 Codex 能够像 Superman 一样强大。

2. 运行环境说明

为了保障安全性、隐私性,所以我的 Agent 都没有运行在本地,而是运行在一台远程的 EC2 上,然后通过 ssh 进行管理。EC2 上运行了一个 OpenClaw,其中安装了上述四个 Agent。此外,EC2 上还安装了 Codex,Codex 的运行这里使用了两种运行模式,一个是终端直接运行,通过 screen 直接在终端运行了一个 Codex 进程,此外,还通过 OpenClaw 的 Agent (openclaw-codex)可以调用 Codex 。当前的 Codex 主要在仓库 for-codex-task 上运行,仓库中的 AGENTS.md 会定义 Codex 的行为,这主要是一个调研类的 Agent。

                                          Zex / Zhenxing
                                             |
           +---------------------------------+---------------------------------+
           |                                 |                                 |
           v                                 v                                 v
   +----------------------+        +----------------------+        +----------------------+
   | IM Entry Points      |        | SSH                  |        | Web GitHub Admin     |
   |                      |        |                      |        |                      |
   | Feishu / WeChat      |        | Remote shell access  |        | View / edit repo     |
   | Chat-based control   |        | EC2 operations       |        | Define Agent behavior|
   +----------------------+        +----------------------+        +----------------------+
           |                                 |                                 |
           | Manage OpenClaw                 | Manage EC2                      | View outputs
           |                                 |                                 | Edit AGENTS.md
           v                                 v                                 v
   +-----------------------------------------------------------+    +--------------------------+
   | Remote EC2 Instance                                       |    | GitHub Repository        |
   |                                                           |    |                          |
   |   OpenClaw                                                |    | for-codex-task           |
   |      ^                                                    |    |                          |
   |      | Feishu / WeChat management entrypoints             |    | Independent from EC2     |
   |      |                                                    |    | Defines Agent behavior   |
   |      +-- main / Mike                                      |    | via AGENTS.md            |
   |      |     +-- Master agent                               |    | Stores / exposes         |
   |      |     +-- Permission management                      |    | Agent running results    |
   |      |     +-- Calendar entry point                       |    +--------------------------+
   |      |     +-- Memo / notebook entry point                |                ^
   |      |                                                    |                |
   |      +-- english / Echo                                   |                |
   |      |     +-- Personal English agent                     |                |
   |      |     +-- Vocabulary list automation                 |                |
   |      |                                                    |                |
   |      +-- family-magazine / Maga                           |                |
   |      |     +-- Family magazine experiment                 |                |
   |      |                                                    |                |
   |      +-- openclaw-codex / Clark                           |                |
   |            +-- Invokes Codex                              |                |
   |            +-- Handles long-running tasks                 |                |
   |                                                           |                |
   |   Codex                                                   |                |
   |      |                                                    |                |
   |      +-- Mode 1: Terminal process                         |                |
   |      |     +-- Running directly in screen                 |                |
   |      |                                                    |                |
   |      +-- Mode 2: OpenClaw Agent                           |                |
   |      |     +-- Invoked by openclaw-codex / Clark          |                |
   |      |                                                    |                |
   |      +-- Working repo on EC2                              |                |
   |            |                                              |                |
   |            +-- for-codex-task                             |                |
   |                  |                                        |                |
   |                  +-- Synced with GitHub repository -------+----------------+
   |                  |     +-- pull AGENTS.md / tasks         |
   |                  |     +-- push Agent running results     |
   |                  |                                        |
   |                  +-- AGENTS.md                            |
   |                        +-- Defines Codex behavior         |
   |                        +-- Mainly research-oriented       |
   +-----------------------------------------------------------+

3. 改进@20260515

3.1 一个仓库所有的文件

当前,我把所有的文档都放在了一个 GitHub 仓库中,然后让 Codex 根据不同的任务类型将文件都放在这个仓库中,并通过不同的目录来进行管理。

例如,我的仓库包括了:独立新知识学习的目录(例如Iceberg)、系统方向学习目录(例如 memory、如何使用 codex等)、未分类的临时主题目录(这个目录可能是按照时间组织的)。

这种方式,当每次都是给出独立的、小型的任务的时候,是没问题的。并且管理和使用起来非常方便,一个 Agent 完成所有的工作。但是,当希望系统的、经常的在某一个主题上工作就不是很方便了。例如,我想在某个目录下(memory 主题、Iceberg主题)持续调研,这时候就不是很方便了。

所以,这里做了一个改进:将独立的、长期的主题独立出来,以独立的 Agent 运行。

3.2 长期主题使用独立的 Agent

4. Long-Running Task

现在一个 Code 的任务大概 5 分钟左右。很难一次让执行更长时间,而且,简单的当个任务让其完成更长的任务,实现的效果也不会很好。

那么,怎么设计面相与 AI 的 Long-Running Task 呢?

一个基础的策略是:

  • 事先写更多的问题背景、要求
  • 事先编写 review Agent 的要求,然后进入,执行 -> Review -> 修复 -> Review 的流程 从而实现 Long-Running

Lessons I learned

不要在一个大“上下文”里面做一个小事情

例如,在一个非常大的 Git 仓库下面,某次调用只是完成一个小的功能。这时候,AI 很容易因为要读取整个目录(或者结构),然后受到一些看似相关的内容,从而导致上下文被“污染”。而让 AI 的注意力被分散,结果通常是,事情可以被完成,但是需要更长时间,更多的上下文。

确定非常高的事情,可以考虑使用“程序”、“流程”完成

对于确定性非常的事情或者流程,最好让“程序”来完成,而不是 AI。这个“程序”可能是一个直接的脚本或者一个 SKILL,让 AI 调用,但是不要让 AI 来去做,AI 做的话,则会因为过分考虑各种情况,而设计(通常还会不断地改进)非常复杂的流程去完成。

不要过分追工具,而是专注于目标与任务

在最初(甚至很长时间以内),就算一般的工具能力都是超出“需求”的。例如,DeepSeek 、Qwen、Douban 都已经可以解决绝大数场景了,而不一定要使用 ChatGPT 、 opus 或者 Gemini。当你熟悉了这些工具如何完成你的任务之后,这时候就可以再尝试如何使用最 SOTA 的工具去做事情了。

把大任务分成小任务、多步骤

在当前阶段,要想让 AI 更好的去完成一个“长任务”,是需要一定设计的。其中一个办法就是:把大任务分成小任务、多步骤。然后让不同的 Agent 独立完成不同的部分。

给 long-running 编写更好的 Spec

Leave a Reply

Your email address will not be published. Required fields are marked *