Skip to content

luoz6/XxCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XxCode

一个以 harness 为中心的 Python AI coding agent

Double-layer agent loop · Tool harness · Context compression · Memory · Task runtime · Skills / MCP / Worktree

XxCode 不是把“对话 + 执行”塞进一个黑盒循环里的聊天机器人。它把 agent 的关键能力拆成清晰的 runtime 边界:对话编排、工具调度、权限判定、任务隔离、上下文压缩和记忆回收,各自独立、各自可测。

亮点一览

双层 Agent Loop
QueryEngine 负责外层会话编排,CoreExecutionEngine 负责内层 tool loop,职责分离更清楚,也更容易做二次开发。
Tool Harness
工具调度不是“能不能调用”这么简单,而是把并发、预检、权限和结果收集统一进一条执行链。
四层上下文压缩
Snip -> Micro -> Collapse -> AutoCompact 逐级压缩,而不是直接粗暴截断,保留更多决策信息。
Memory System
MEMORY.md 做入口索引,按当前 query 召回少量高相关记忆,再注入完整内容;后台 extraction 持续沉淀 user / project / feedback / reference 四类记忆。
Task Runtime
把子任务、worker、scope 和通知机制做成独立运行时,避免“开个子任务”退化成一次普通递归请求。
Skills / MCP / Worktree
扩展能力挂在统一 runtime 上,既能接技能,也能接 MCP,还能做 worktree 隔离。
Multi-Agent Runtime
支持 Coordinator 编排后台 worker,围绕 task、scope 和通知机制组织多 Agent 协作,而不是简单多开几次模型请求。
权限与执行边界
shell、文件编辑和任务执行都有明确权限判断链路,安全模型是 runtime 的一部分,不是事后打补丁。

它和普通 Agent 的区别

维度 普通 Agent XxCode
核心关注 聊天体验优先 harness 和 runtime 优先
执行方式 单一大循环 编排、执行、工具分层
安全模型 事后补救 权限链路前置
上下文处理 截断或堆叠 四层渐进压缩
扩展方式 往主循环堆逻辑 通过 skills / MCP / worker 挂接
状态管理 常常共享同一上下文 task、scope、session 分离

运行路径

用户输入
  -> CLI 解析配置和参数
  -> Memory bootstrap / recall 准备
  -> Context pipeline 压缩上下文
  -> QueryEngine 处理会话状态与 turn
  -> CoreExecutionEngine 进入 tool loop
  -> Tool harness 调度工具
  -> Permission pipeline 判定是否允许执行
  -> Task runtime 处理子任务、worker 和通知
  -> 返回结果并进入下一轮

核心模块

模块 作用
src/xxcode/agent/query_engine.py 外层会话管理,负责状态初始化、turn 提交、skill 处理和核心循环调度
src/xxcode/agent/loop.py 内层执行引擎,负责 tool loop、上下文准备、恢复与结果回写
src/xxcode/agent/tools_executor.py 工具调度器,负责并发、权限和结果收集
src/xxcode/agent/task_runtime.py 子任务运行时,管理 task、scope、worker 生命周期
src/xxcode/tools/agent/tool.py 子 Agent 入口,支持后续 worker 和 worktree 隔离
src/xxcode/tools/BashTool/permissions.py shell 命令的多层权限分析与规则建议
src/xxcode/context/pipeline.py 四层上下文压缩管道
src/xxcode/memory/recall.py 基于 MEMORY.md 的记忆回收
src/xxcode/memory/index.py 生成 MEMORY.md 索引并控制入口大小预算

快速开始

pip install -e .

# Required
$env:XXCODE_API_KEY="your_api_key"
$env:XXCODE_API_BASE_URL="your_base_url"

# Optional: defaults to deepseek-v4-pro
$env:XXCODE_API_MODEL="deepseek-v4-pro"

xxcode

模型配置:

  • 默认模型是 deepseek-v4-pro
  • 可用环境变量 XXCODE_API_MODEL 覆盖
  • 兼容 ANTHROPIC_MODEL 作为回退变量
  • 也可以用 --model 按单次会话覆盖
  • 代码当前支持 claude-*deepseek-*gpt-*o1o3o4

例如:

xxcode --model claude-sonnet-4-6
xxcode --model gpt-4o

单次执行:

xxcode --model deepseek-v4-pro -p "帮我分析当前仓库里的测试结构"

常用参数:

  • --model:覆盖默认模型
  • --cwd:指定工作目录
  • --resume:恢复已有会话
  • --list:列出已保存会话
  • --bare:关闭 auto-memory 等持久特性
  • --yolo:跳过权限确认
  • --ui-backend:切换终端 UI 后端
  • --verbose:开启调试日志
  • --max-tokens:限制单轮输出 tokens

测试与评测

使用下面这些命令来运行 benchmark 测试、生成报告,并将当前版本与 baseline profile 进行对比。

仅运行 benchmark 测试:

python -m pytest tests/benchmark -q

仅生成 benchmark 报告:

python scripts/run_unified_eval_report.py

运行完整 benchmark 套件:

python scripts/run_benchmark_suite.py

使用显式指定的报告目录和工作目录来运行完整套件:

python scripts/run_benchmark_suite.py --output-dir .tmp/benchmark-reports --work-dir .tmp/unified-eval-run

与 baseline profile 进行对比:

python scripts/run_benchmark_suite.py --baseline-profile memory_off
python scripts/run_benchmark_suite.py --baseline-profile context_off
python scripts/run_benchmark_suite.py --baseline-profile security_relaxed

适合谁

  • 想研究 agent 内核、执行链路和 runtime 设计的人。
  • 想做二次开发,扩展 tool、memory、task 或多 Agent 能力的人。
  • 想直接看一个 harness-first AI coding agent 是怎么落地的人。

后续文档

后续会继续补充更系统的文档讲解,重点会覆盖 memory、multi-agent、tool harness、权限链路和上下文工程这些部分。

当前已经补充的文档:

  • docs/agent-loop-query-engine-and-loop-explained.md:从 QueryEngine 入口到 CoreExecutionEngine 内层 tool loop,按主执行路径拆解 XxCode 的核心 agent loop。
  • docs/context-engineering-explained.md:解释每轮模型调用前上下文如何被注入、压缩、投影、标准化和缓存标记,重点覆盖 ContextPipeline、L1-L4 压缩和 _build_messages()
  • docs/memory-explained.md:解释 memory 如何作为隐式用户消息进入上下文、如何通过双通道召回保持广度与深度,以及它怎样在后台 extraction 中持续沉淀。
  • docs/multi-agent-explained.md:解释 multi-agent runtime 如何派生子 agent、编排 worker、约束权限和工具,并用 scope、通知与 worktree 管住协作边界。

进一步阅读

如果你想继续往下看,建议从这些入口开始:

  1. docs/agent-loop-query-engine-and-loop-explained.md
  2. docs/context-engineering-explained.md
  3. docs/memory-explained.md
  4. docs/multi-agent-explained.md
  5. src/xxcode/agent/loop.py
  6. src/xxcode/context/pipeline.py
  7. src/xxcode/agent/task_runtime.py
  8. src/xxcode/agent/tools_executor.py
  9. src/xxcode/tools/agent/tool.py
  10. src/xxcode/tools/BashTool/permissions.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages