14,443
STARS_IN_40_DAYS
An engineered Agent Runtime —
not a chatbot, a Harness.
CoPaw 是由阿里集团 AgentScope 团队开发的开源个人 AI 助手框架。采用 Apache 2.0 许可证,以 Python 为核心语言,支持本地部署与云端部署,可连接钉钉、飞书、微信、Discord、Telegram 等多渠道。
DATE: 2026-04-05 CONFIDENCE: HIGH VER: V1.0.1
STARS14,443
FORKS1,908
OPEN ISSUES692
CONTRIBUTORS100+
STAR/FORK7.57:1
LICENSEAPACHE 2.0
LANGUAGEPY 73.7%
CREATED2026-02-24
ITERATION7 VER / 40D
SECTION_01 // CORE_CONCEPTS
Works for you, grows with you.
01
数据自主
Under your control — 记忆和个性化完全由用户控制,本地部署或云端部署
02
技能扩展
Skills extension — 内置 20+ 技能,自定义技能自动加载,无锁定
03
多 Agent 协作
Multi-agent — 创建多个独立 Agent,支持跨 Agent 通信协作
04
多层安全
Security — 工具守卫、文件访问控制、技能安全扫描
05
全渠道覆盖
Every channel — 钉钉、飞书、微信、Discord、Telegram、QQ 等 8+ 平台
Workspace Isolation Architecture
CoPaw 最核心的工程抽象。每个 Agent 实例都是一个完整的、隔离的运行时环境——独立的 Runner、记忆、MCP 连接、定时任务和渠道绑定,互不干扰。
LAYER_00 // CHANNELS
DINGTALK FEISHU WECHAT DISCORD TELEGRAM QQ WECOM CONSOLE
LAYER_01 // MULTI_AGENT_MANAGER
LAZY LOADING LIFECYCLE HOT RELOAD CONTEXTVAR ROUTING GRACEFUL STOP
LAYER_02 // WORKSPACE (PER AGENT)
AGENTRUNNER MEMORYMANAGER MCPCLIENTMANAGER CHANNELMANAGER CRONMANAGER TASKTRACKER CONFIGWATCHER
LAYER_03 // INFRASTRUCTURE
OPENAI AZURE GLM OLLAMA LLAMA.CPP SKILLPOOL TOOLGUARD
USER
复杂任务请求
AGENT-A
接收任务
拆分子任务
AGENT-B
后台处理
返回结果
REALTIME: FROM A → B
BACKGROUND: TASK_ID
ANTI-LOOP: NO CALLBACK
Dual-Track Offload + LLM Structured Summarization
业界领先的上下文管理方案。信息零丢失、自动触发、可回溯。基于 ReMeLight 框架(v0.3.1.8)实现。
01
compact_tool_result
按字节阈值截断超长工具输出。最近 3 条保留 50KB,更早的激进截断至 3KB。完整内容存到 tool_result/uuid.txt。
02
context_check
从尾部向前累积 token,切割为 to_compact + to_keep。保证 tool_use/tool_result 配对完整。
03
compact_summary
调用临时 ReActAgent(reme_compactor),用结构化 Prompt 生成 Markdown 摘要。首次压缩从零生成,后续增量更新。
04
mark_compressed
原始消息写入 dialog/YYYY-MM-DD.jsonl 归档。从内存中删除。摘要写入 memory 的 _compressed_summary 字段。
TRIGGER
每轮推理前 MemoryCompactionHook 触发。计算系统提示词 + 旧摘要的 token 数 → 剩余可用 = threshold - 已占用
GATE CHECK
剩余可用 ≤ 0 ? → 警告并跳过(系统提示词本身就超了)。剩余可用 > 0 → 进入 Step 01
STEP 01: compact_tool_result
按字节阈值截断超长工具输出(原地修改)。最近 3 条保留 50KB,更早的截断至 3KB。完整内容存 tool_result/uuid.txt
STEP 02: context_check
从尾部向前累积 token,切割为 to_compact + to_keep。保证 tool_use / tool_result 配对完整
BRANCH: to_compact 为空 ?
为空 → 不压缩,直接推理。不为空 → 进入 Step 03
STEP 03a / 03b: compact_summary
无 previous_summary → 首次压缩(initial_user_message Prompt)。有 previous_summary → 增量更新(update_user_message Prompt)
LLM CALL: reme_compactor
创建临时 ReActAgent,调用 LLM 生成结构化 Markdown 摘要
VALIDITY CHECK
摘要包含 ## 标题? → 有效继续。无效 → 保存原始数据到 JSON,跳过本次压缩
STEP 04: mark_compressed
旧消息写入 dialog/YYYY-MM-DD.jsonl → 从内存中删除 → update_compressed_summary 摘要写入 memory
RESULT: 直接推理
上下文已压缩。LLM 接收三层结构:System Prompt + compact_summary + recent messages
输入: messages 列表
计算每条消息的 token 数
总 token < threshold ?
是 → 不切割,全部保留
否 → 进入配对分析
配对保护
收集 tool_use 和 tool_result 的配对关系。如果 tool_result 被保留,对应的 tool_use 也拉进保留区
尾部向前累积
从最后一条消息开始向前累积 token。累积 + 当前 > reserve → 停止,之前归入 to_compact
输出: to_compact + to_keep + is_valid
验证 to_keep 中的 tool_use / tool_result 配对完整性。reserve 硬上限 12.8K tokens
配对保护: tool_result 保留 → tool_use 同步保留
切割方向: 从尾部向前累积
硬上限: reserve = 12.8K tokens
RECENT (recent_n=3)
低截断: recent_max_bytes = 50,000
保留较多内容
完整内容同时写入文件
消息中保留截断片段 + 文件路径引用
AGE ↓
← ← ←
TRUNCATE ↑
OLD (> recent_n)
高截断: old_max_bytes = 3,000
激进截断至 3KB
继续引用已有文件路径
Browser Use 类工具只保留文件引用
SPECIAL: BROWSER USE
首次调用保存原始 HTML 到文件,后续只保留文件引用
SPECIAL: FILE READ
大文件输出自动 Offload,只保留摘要
KEY DESIGN
原地修改 messages,不是生成新的"压缩层"
3A // 首次压缩 (Initial)
CONDITION
memory 中无 previous_summary
PROMPT: initial_user_message
输入: # conversation + 旧对话。LLM 从零生成结构化摘要
// OUTPUT FORMAT
## 目标
## 约束和偏好
## 进展(已完成 / 进行中 / 阻塞)
## 关键决策
## 下一步
## 关键上下文
3B // 增量更新 (Incremental)
CONDITION
memory 中已有 previous_summary
PROMPT: update_user_message
输入: # conversation + 旧对话 + # previous-summary + 上次摘要。LLM 合并输出更新后的摘要
// UPDATE RULES
+ 保留先前摘要的所有现有信息
+ 从新消息添加新的进展、决策和上下文
+ 完成时将"进行中"移到"已完成"
+ 根据已完成内容更新"下一步"
+ 不再相关的内容可以删除
KEY INSIGHT: 如果对话经历了 5 次压缩,compact_summary 不是 5 份摘要拼在一起,而是一份不断被"更新"的活文档。LLM 每次拿到旧摘要 + 新对话,合并输出一份更新后的摘要。
AGENT NAME reme_compactor
TYPE 临时 ReActAgent
LIFECYCLE 仅存在于压缩过程
OUTPUT 纯文本 Markdown
VALIDATION _is_valid_summary()
FAIL STRATEGY 保存原始 JSON + 跳过
VALIDITY RULE 必须包含 ## 标题才算有效。否则跳过压缩,保存原始数据到 JSON 供调试。压缩用的 LLM 可独立配置(如用便宜的小模型)
## 目标
用户希望深入研究 CoPaw 项目的架构设计,特别是上下文管理和技能广播机制
## 约束和偏好
- 报告需要写到 Obsidian 笔记中
- 使用 Obsidian Flavored Markdown 格式
- 需要源码级分析深度
## 进展
### 已完成
- [x] 通过 GitHub API 获取仓库基本信息
- [x] 读取 memory_compaction.py 源码
- [x] 分析 ReMeLight 记忆管理器实现
### 进行中
- [ ] 分析 compactor.py 的 Prompt 模板设计
- [ ] 确认 update 模式的增量合并策略
## 关键决策
- 使用 ReMeLight 作为记忆后端: 支持向量搜索 + 全文搜索双引擎
- 双轨 Offload 策略: 工具结果和对话历史分别处理
## 下一步
1. 完成 compactor Prompt 分析
2. 补充技能广播机制到报告
3. 修正 Mermaid 图表
## 关键上下文
- 项目地址: github.com/agentscope-ai/CoPaw
- ReMe 版本: 0.3.1.8
- compact_ratio: 0.7, reserve_ratio: 0.1
A
_append_messages_to_dialog()
将被压缩的原始消息以 JSONL 格式追加到 dialog/ 目录
ARCHIVE
B
self.content = [msg for msg if msg.id not in msg_ids]
从内存消息列表中移除已归档的消息
DELETE
C
update_compressed_summary()
将新的摘要文本写入 memory 的 _compressed_summary 字段
UPDATE
LAYER 1 // FIXED
系统提示词 System Prompt
Agent 角色设定 + 基础指令。始终保留,永不压缩。
LAYER 2 // DYNAMIC
compact_summary
结构化摘要(Goal / Progress / Decisions / Context)。首次压缩后生成,增量更新——不是多份摘要拼在一起,而是一份不断被"更新"的活文档。
LAYER 3 // RECENT
messages(最近 N 条)
工具输出已被截断,附带文件路径引用。保留区上限 12.8K tokens。
max_input_length128,000
memory_compact_ratio0.7
memory_reserve_ratio0.1
recent_n3
old_max_bytes3,000
recent_max_bytes50,000
retention_days30
compact_threshold89,600
Two-Layer Skill Pool + Broadcast
两层池化设计:全局 SkillPool + Agent 工作区技能。支持批量广播推送、冲突处理、安全扫描。
SKILL_POOL // GLOBAL
内置技能 (OFFICIAL)20+
自定义技能 (CUSTOM)INFINITE
Hub 导入 (COMMUNITY)INFINITE
BROADCAST_FLOW
1
选择技能(支持全选/选内置/清空)
2
选择目标 Agent(多选 Workspace)
3
批量复制到目标 Agent 的 skills/ 目录
4
Agent 热重载,自动识别新技能
SKILL_CATEGORIES
文档处理
PDF 处理
Word 文档
Excel 表格
PPT 演示
通信协作
多 Agent 协作
频道消息推送
飞书日历/任务
钉钉接入
信息获取
Tavily 搜索
智谱搜索
新闻摘要
内容分析
系统工具
浏览器自动化
CDP 浏览器控制
定时调度
技能创建器
专业领域
产品经理 PRD
GitHub 深度研究
Obsidian 笔记
Excalidraw 图表
40 Days, 7 Versions
2026-02-24
v0.0.1
项目首次发布 — Your Personal AI Assistant
2026-02~03
v0.0.2 ~ v0.0.7
快速迭代,渠道支持扩展
2026-03-18
v0.1.0
功能增强版本
2026-03-20
10K STARS
社区增长里程碑
2026-03-24
v0.2.0
重大功能更新
2026-03-30
v1.0.0
正式版 — 多 Agent 系统、本地模型 (llama.cpp)、上下文管理 v2.0、安全体系
2026-04-03
v1.0.1
智谱模型支持、视频分析、OneBot v11、Agent 拖拽排序、批量技能操作
2026-04-05
14.4K STARS
当前 — 极具潜力的 Agent Harness 项目
8+ Platform Integration
DingTalk
● SUPPORTED
Feishu / Lark
● SUPPORTED
WeChat
● SUPPORTED
WeCom
● SUPPORTED
Discord
● SUPPORTED
Telegram
● SUPPORTED
QQ (NapCat)
● SUPPORTED
Console UI
● BUILT-IN
Market Landscape
FEATURECOPAWOPEN INTERPRETERAUTOGPTDIFY
Agent Isolation✓ WORKSPACE~ LIMITED~ WORKFLOW
Context Mgmt✓ DUAL-OFFLOAD✗ TRUNCATE~ BASIC~ LIMITED
Skill Broadcast✓ BATCH
Multi-Channel✓ 8+~ LIMITED
Chinese Ecosystem✓ NATIVE✓ SUPPORT
Desktop App✓ WIN/MAC
Stars14.4K55K+170K+95K+
Dimension Scores
ARCHITECTURE
9.0
CONTEXT MGMT
9.0
SKILL SYSTEM
8.5
INNOVATION
8.0
USABILITY
9.0
COMPLETENESS
8.0
CODE QUALITY
7.0
COMMUNITY
8.0
OVERALL
8.3
SECTION_09 // STRENGTHS_AND_WEAKNESSES
STRENGTHS (+)
Agent Harness 架构 — Workspace 隔离 + 声明式服务管理,工程化程度高
上下文管理 v2.0 — 双轨 Offload + ReMeLight 向量搜索,长时间对话不"失忆"
技能广播体系 — 两层池化 + 批量推送 + 冲突处理,多 Agent 技能管理高效
40 天 14K Stars — 社区增长极快
中国生态全覆盖 — 钉钉/飞书/微信/QQ 原生支持
开箱即用 — 一键脚本、桌面安装包、Docker 部署
WEAKNESSES (-)
项目极年轻 — 仅 40 天历史,API 稳定性待验证
692 个 Open Issues — 质量控制压力
核心团队集中 — 前 5 名贡献者占绝大部分,bus factor 风险
版本号激进 — v0.2.0 直接跳到 v1.0.0
国际化不足 — 核心社区和文档仍以中文为主
企业级功能待验证 — 高可用、监控告警等尚不完善
SECTION_10 // CONCLUSION
CoPaw 不是一个普通的聊天机器人项目,而是一个工程化的 Agent 运行时(Agent Harness)。其三大技术支柱——Workspace 隔离的多 Agent 架构、基于 ReMeLight 的双轨 Offload 上下文管理、以及两层技能池 + 批量广播体系——构成了一个完整的 Agent 基础设施。
40 天内 14K Stars 的增长,验证了"私有化部署 + 中国通讯生态 + 可扩展技能"这一产品定位的精准。
8.3
OVERALL_RATING // OUT OF 10