autonomous-agent-harness

autonomous-agent-harness

熱門

將 Claude Code 轉換為完全自主的代理系統,具備持久記憶、排程操作、電腦使用與任務佇列功能。取代獨立的代理框架(如 Hermes、AutoGPT),利用 Claude Code 原生的 crons、dispatch、MCP 工具與記憶。當使用者需要持續自主運作、排程任務或自我導向的代理循環時使用。

23萬星標
3.5萬分支
更新於 2026/7/19
SKILL.md
唯讀
名稱
autonomous-agent-harness
描述

將 Claude Code 轉換為完全自主的代理系統,具備持久記憶、排程操作、電腦使用與任務佇列功能。取代獨立的代理框架(如 Hermes、AutoGPT),利用 Claude Code 原生的 crons、dispatch、MCP 工具與記憶。當使用者需要持續自主運作、排程任務或自我導向的代理循環時使用。

自主代理框架

僅使用原生功能與 MCP 伺服器,將 Claude Code 轉變為持久、自我導向的代理系統。

同意與安全邊界

自主操作必須由使用者明確要求並設定範圍。除非使用者已核准該能力及目前設定的目標工作區,否則請勿建立排程、派遣遠端代理、寫入持久記憶、使用電腦控制、對外發布、修改第三方資源,或處理私人通訊。

在啟用週期性或事件驅動動作之前,建議先進行乾執行計畫與本地佇列檔案。請勿將憑證、私人工作區匯出、個人資料集及帳戶特定的自動化功能放入可重複使用的 ECC 成品中。

啟用時機

  • 使用者想要一個持續執行或按排程運作的代理
  • 設定定期觸發的自動化工作流程
  • 建立能跨工作階段記住上下文的個人 AI 助理
  • 使用者說「每天執行這個」、「定期檢查這個」、「持續監控」
  • 想要複製 Hermes、AutoGPT 或類似自主代理框架的功能
  • 需要結合電腦使用與排程執行

架構

┌──────────────────────────────────────────────────────────────┐
│                    Claude Code 執行環境                       │
│                                                              │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌─────────────┐ │
│  │  Crons   │  │ Dispatch │  │ Memory   │  │ Computer    │ │
│  │ 排程任務  │  │ 遠端代理  │  │ 儲存     │  │ 使用       │ │
│  │          │  │          │  │          │  │             │ │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └──────┬──────┘ │
│       │              │             │                │        │
│       ▼              ▼             ▼                ▼        │
│  ┌──────────────────────────────────────────────────────┐    │
│  │              ECC 技能 + 代理層                       │    │
│  │                                                      │    │
│  │  skills/     agents/     commands/     hooks/        │    │
│  └──────────────────────────────────────────────────────┘    │
│       │              │             │                │        │
│       ▼              ▼             ▼                ▼        │
│  ┌──────────────────────────────────────────────────────┐    │
│  │              MCP 伺服器層                             │    │
│  │                                                      │    │
│  │  memory    github    exa    supabase    browser-use  │    │
│  └──────────────────────────────────────────────────────┘    │
└──────────────────────────────────────────────────────────────┘

核心元件

1. 持久記憶

使用 Claude Code 內建的記憶系統,並搭配 MCP 記憶伺服器處理結構化資料。

內建記憶~/.claude/projects/*/memory/):

  • 使用者偏好、回饋、專案上下文
  • 以帶有 frontmatter 的 Markdown 檔案儲存
  • 工作階段開始時自動載入

MCP 記憶伺服器(結構化知識圖譜):

  • 實體、關係、觀察
  • 可查詢的圖譜結構
  • 跨工作階段持久化

記憶模式:

# 短期:目前工作階段上下文
使用 TodoWrite 進行工作階段內任務追蹤

# 中期:專案記憶檔案
寫入 ~/.claude/projects/*/memory/ 以跨工作階段回憶

# 長期:MCP 知識圖譜
使用 mcp__memory__create_entities 儲存永久結構化資料
使用 mcp__memory__create_relations 建立關係對應
使用 mcp__memory__add_observations 新增已知實體的事實

2. 排程操作(Crons)

使用 Claude Code 的排程任務建立週期性代理操作。

設定 cron:

# 透過 MCP 工具
mcp__scheduled-tasks__create_scheduled_task({
  name: "daily-pr-review",
  schedule: "0 9 * * 1-5",  # 週一至週五早上 9 點
  prompt: "Review all open PRs in affaan-m/everything-claude-code. For each: check CI status, review changes, flag issues. Post summary to memory.",
  project_dir: "/path/to/repo"
})

# 透過 claude -p(程式模式)
echo "Review open PRs and summarize" | claude -p --project /path/to/repo

實用的 cron 模式:

模式 排程 使用案例
每日站會 0 9 * * 1-5 檢視 PR、議題、部署狀態
每週回顧 0 10 * * 1 程式碼品質指標、測試覆蓋率
每小時監控 0 * * * * 生產環境健康度、錯誤率檢查
夜間建置 0 2 * * * 執行完整測試套件、安全掃描
會議前準備 */30 * * * * 準備即將到來的會議上下文

3. Dispatch / 遠端代理

遠端觸發 Claude Code 代理以進行事件驅動的工作流程。

Dispatch 模式:

# 從 CI/CD 觸發
curl -X POST "https://api.anthropic.com/dispatch" \
  -H "Authorization: Bearer $ANTHROPIC_API_KEY" \
  -d '{"prompt": "Build failed on main. Diagnose and fix.", "project": "/repo"}'

# 從 Webhook 觸發
# GitHub webhook → dispatch → Claude 代理 → 修復 → PR

# 從另一個代理觸發
claude -p "Analyze the output of the security scan and create issues for findings"

4. 電腦使用

利用 Claude 的 computer-use MCP 進行實體世界互動。

能力:

  • 瀏覽器自動化(導航、點擊、填寫表單、截圖)
  • 桌面控制(開啟應用程式、打字、滑鼠控制)
  • 超越 CLI 的檔案系統操作

在框架中的使用案例:

  • 網頁 UI 自動化測試
  • 表單填寫與資料輸入
  • 基於截圖的監控
  • 多應用程式工作流程

5. 任務佇列

管理一個跨工作階段持續存在的任務佇列。

實作方式:

# 透過記憶持久化任務佇列
將任務佇列寫入 ~/.claude/projects/*/memory/task-queue.md

# 任務格式
---
name: task-queue
type: project
description: Persistent task queue for autonomous operation
---

## 進行中的任務
- [ ] PR #123:檢視並在 CI 通過時核准
- [ ] 監控部署:每 30 分鐘檢查 /health,持續 2 小時
- [ ] 研究:在 AI 工具領域尋找 5 個潛在客戶

## 已完成
- [x] 每日站會:檢視了 3 個 PR、2 個議題

取代 Hermes

Hermes 元件 ECC 對應 方式
Gateway/Router Claude Code dispatch + crons 排程任務觸發代理工作階段
記憶系統 Claude 記憶 + MCP 記憶伺服器 內建持久化 + 知識圖譜
工具註冊表 MCP 伺服器 動態載入工具提供者
編排 ECC 技能 + 代理 技能定義引導代理行為
電腦使用 computer-use MCP 原生瀏覽器與桌面控制
上下文管理器 工作階段管理 + 記憶 ECC 2.0 工作階段生命週期
任務佇列 記憶持久化的任務清單 TodoWrite + 記憶檔案

設定指南

步驟 1:設定 MCP 伺服器

確保 ~/.claude.json 中包含以下內容:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@anthropic/memory-mcp-server"]
    },
    "scheduled-tasks": {
      "command": "npx",
      "args": ["-y", "@anthropic/scheduled-tasks-mcp-server"]
    },
    "computer-use": {
      "command": "npx",
      "args": ["-y", "@anthropic/computer-use-mcp-server"]
    }
  }
}

步驟 2:建立基本 Crons

# 每日晨間簡報
claude -p "Create a scheduled task: every weekday at 9am, review my GitHub notifications, open PRs, and calendar. Write a morning briefing to memory."

# 持續學習
claude -p "Create a scheduled task: every Sunday at 8pm, extract patterns from this week's sessions and update the learned skills."

步驟 3:初始化記憶圖譜

# 建立你的身分與上下文
claude -p "Create memory entities for: me (user profile), my projects, my key contacts. Add observations about current priorities."

步驟 4:啟用電腦使用(選用)

授予 computer-use MCP 必要的瀏覽器與桌面控制權限。

範例工作流程

自主 PR 審查員

Cron:工作時間每 30 分鐘
1. 檢查受監控儲存庫的新 PR
2. 對每個新 PR:
   - 在本機拉取分支
   - 執行測試
   - 使用 code-reviewer 代理審查變更
   - 透過 GitHub MCP 發布審查意見
3. 更新記憶中的審查狀態

個人研究代理

Cron:每天早上 6 點
1. 檢查記憶中儲存的搜尋查詢
2. 對每個查詢執行 Exa 搜尋
3. 摘要新的發現
4. 與昨天的結果比較
5. 將摘要寫入記憶
6. 標記高優先級項目供早上檢視

會議準備代理

觸發:每個行事曆事件前 30 分鐘
1. 讀取行事曆事件詳細資訊
2. 搜尋記憶中與會者的上下文
3. 擷取近期與與會者的電子郵件/Slack 討論串
4. 準備談話要點與議程建議
5. 將準備文件寫入記憶

限制

  • Cron 任務在隔離的工作階段中執行——除非透過記憶,否則不會與互動式工作階段共享上下文。
  • 電腦使用需要明確的權限授予。請勿假設可以存取。
  • 遠端 dispatch 可能有速率限制。設計 cron 時請使用適當的間隔。
  • 記憶檔案應保持簡潔。歸檔舊資料,避免檔案無限增長。
  • 務必確認排程任務已成功完成。在 cron 提示中加入錯誤處理。