Skip to main content

vague-code

面向真实编码场景的轻量级本地 Coding Agent CLI。自研 Agent Runtime、可控工具系统、四层上下文压缩、冲突可串行化并发调度、权限安全体系与跨会话记忆,以及配套的自动化评测工具链。

Powered by DeepSeek V4 Flash (or any OpenAI/Anthropic compatible backend).


架构

┌─────────────────────────────────────────────────────────────────────┐
│  CLI (Rich Renderer) + TUI (Textual) ──── thin shell              │
├─────────────────────────────────────────────────────────────────────┤
│  Agent Runtime (ReAct Loop + Retry + Checkpoint/Resume)             │
│  ┌─────────────┐ ┌──────────┐ ┌──────────┐ ┌────────────────────┐  │
│  │ Tool System │ │ Context  │ │Security  │ │ Memory System      │  │
│  │ 7 核心工具  │ │五层压缩  │ │4 种模式  │ │SQLite 统一记忆库   │  │
│  │ 并发调度    │ │KV Cache  │ │审计日志  │ │episodic 按需检索   │  │
│  │ 冲突可串行化│ │分层注入  │ │纯函数决策│ │增量蒸馏            │  │
│  └─────────────┘ └──────────┘ └──────────┘ └────────────────────┘  │
│                          │                                          │
│  Model Abstraction ──────┴─── Codecs (DeepSeek / Anthropic) ────→  │
│  Custom IR (text/thinking/tool_use/tool_result) + Unified Stream    │
├─────────────────────────────────────────────────────────────────────┤
│  Trajectory (Event-Sourced JSONL → SQLite)                          │
├─────────────────────────────────────────────────────────────────────┤
│  Repo Map (tree-sitter 符号索引) ── code_search 工具 + 地图注入     │
├─────────────────────────────────────────────────────────────────────┤
│  Eval Harness ── 31 tasks (官方保留) ── 真验收/pass^k ── Report     │
└─────────────────────────────────────────────────────────────────────┘

快速开始

# 环境
uv sync                           # 安装依赖
export DEEPSEEK_API_KEY=sk-xxx    # 设置 API Key

# 运行 Agent(CLI 模式)
python -m vague_code.cli "Fix the bug in stats.py"
python -m vague_code.cli --provider anthropic "Refactor auth module"

# 运行 Agent(TUI 模式 — 全屏交互界面)
vague-code tui "Fix the bug in stats.py"
vague-code tui --model deepseek-v4-pro "Analyze the project structure"

# 运行评测(现行体系:真验收 + sanity gate + pass^k,详见 eval/README.md)
python -m eval.cli --tasks eval/tasks.json --fake          # 验证框架
python -m eval.cli --tasks eval/tasks.json --model deepseek-v4-flash --max-turns 25  # 真实 API(20 题本机可跑)
python -m eval.cli --tasks eval/tasks.json --repeat 3 --out report.md  # 消融实验

TUI 模式

vague-code tui [task] 启动全屏交互式终端界面(基于 Textual 框架,v2 分层架构见 docs/adr/0019-tui-v2-architecture.md)。

布局

  • Topbar — brand · 运行状态 · provider/model · 权限模式 · 工作目录(窄屏自动截断)
  • Conversation View — 流式 Markdown 渲染;消息类型左边线分色(用户=青 / 助手=绿 / 工具=灰 / 权限=琥珀 / 错误=红);thinking 超长自动折叠(T 展开)
  • Activity Line — 状态动画(thinking [..] / running [= ] / streaming [> ])+ 回合指标(12.3s · 2 tools)
  • Composer — 多行输入(Shift+Enter 换行),运行中发送进入 guidance 队列,下一轮生效

键绑定

键 操作
Enter 发送
Shift+Enter 换行(部分终端不支持时可用 Ctrl+J)
↑ / ↓ 输入历史(焦点在输入框时)
Esc 聚焦输入框;运行中按两次(1 秒内)中断当前回合
Ctrl+C 有选中则复制;运行中则中断(不退出)
T 折叠/展开 thinking
F1 帮助

斜杠命令

命令 操作
/help 帮助(同 F1)
/resume picker 选择历史会话继续(重放历史后恢复运行)
/new 清空并开始新会话
/clear 清空对话视图
/save [path] 导出 trajectory 为 JSONL
/model / /model <name> picker 或直接切换模型
/mode <m> 设置权限模式 safe|normal|autoedit|auto
/permissions 列出持久化权限规则
exit 退出 TUI(唯一退出方式)

权限

交互式确认对话框:Y 允许一次,Ctrl+Y 始终允许并持久化规则至 .agent/permission-rules.json,N 拒绝。 对 write_file/patch 会先展示写入前 diff 预览(红删绿增);拒绝时可填理由,理由会回传给模型(反馈闭环)。

选项

vague-code tui [task] [--model] [--max-turns] [--db-path] [--provider] [--timeout-s]

提示:vague-code 命令需要激活虚拟环境(uv run vague-code tui ... 或先 .venv\Scripts\Activate.ps1)。


核心模块

模块 文件 描述
Agent Loop vague_code/agent/loop.py ReAct 循环:LLM → tool_use → tool_result → LLM,含 retry/checkpoint/resume
Tool System vague_code/agent/tools.py 7 个工具(read/write/patch/glob/grep/bash/code_search),JSON Schema 校验,50K 截断
Concurrency vague_code/agent/concurrency.py 冲突可串行化 ThreadPool 调度,资源 scope 提取 + 冲突检测
Context Engineering vague_code/agent/context_compress.py 五层压缩:stale_snip → microcompact → structured_snip → auto_compact → truncation
Permission System vague_code/agent/permission.py 4 种模式(safe/normal/autoedit/auto)+ 24 类危险命令正则
Memory System vague_code/agent/memory.py SQLite 统一记忆库 + episodic 检索注入 + auto-compact 蒸馏
Repo Map vague_code/agent/repomap.py tree-sitter 符号索引,code_search 工具 + 符号地图注入
Model Abstraction vague_code/agent/codecs/ 自定义 IR → DeepSeek/Anthropic codec,统一流式事件
Trajectory vague_code/agent/trajectory.py Event-sourced JSONL → SQLite 事件流,to_messages() 导出
CLI vague_code/cli/ argparse + Rich 渲染,--stream/--no-stream,--provider
Eval Harness eval/ 官方保留 31 题 + 真验收/sanity gate + pass^k + Markdown 报告

评测结果

⚠️ 早期 v0.1 的 83%/93% 等数字基于假 pass/fail(验收测试未实跑),已废弃且不得引用。 2026-08 起评测体系按 docs/plans/0016-eval-methods.md 全面升级:真验收(sanity gate 双检 + F2P/P2P 实跑)、pass^k 可靠性、任务集按 OpenAI SWE-bench Verified 官方标注重建。

现状(详见 docs/handoff/2026-08-03-vague-code-eval-system.md 与 docs/handoff/2026-08-05-vague-code-concurrency-and-ablation.md):

  • 任务集 31 题(全部官方保留,17 道脏题已剔除),本机可跑 20 题(sympy 17 + sphinx 2 + pytest 1)

  • 环境策展 5 仓实证验证(sanity gate 全过);sklearn/astropy 10 题需 MSVC/Linux CI

  • 8 题小消融(2026-08-05,max_turns 25,k=1,$3.05):

    cell pass 输入 token 缓存命中率 成本
    基线全开 5/8 5.65M 27% $1.35
    关压缩 4/8 7.92M 93% $0.78
    关 RepoMap 4/8 7.01M 80% $0.91

    要点:① 压缩减少 29% 输入 token(stale_snip 单层回收 14.1 万 token),pass rate 方向性支持(基线 5/8 最高);② 压缩改写历史导致 KV Cache 命中率从 93% 降至 27%,单 token 成本升 4 倍,净成本反升——压缩与 Cache 的张力待长任务验证;③ 8 题均短,microcompact/auto_compact/truncate 未触发,五层流水线收益需长任务实验。

  • 20 题基线消融待跑(P1):python -m eval.cli --tasks eval/tasks.json --max-turns 25 --repeat 3


项目结构

vague-code/
├── vague_code/agent/                 # Agent 核心包
│   ├── loop.py                # ReAct 主循环
│   ├── tools.py               # 6 个基础工具 + code_search spec
│   ├── concurrency.py         # 冲突可串行化并发
│   ├── context_compress.py    # 五层压缩流水线
│   ├── context.py             # 系统提示构建
│   ├── context_tokens.py      # Token 计数 + 预算
│   ├── context_rules.py       # 规则文件层级加载
│   ├── permission.py          # 权限系统
│   ├── memory.py              # 记忆系统
│   ├── memory_tool.py         # memory_search 工具
│   ├── repomap.py             # tree-sitter 符号索引(code_search + 地图注入)
│   ├── config.py              # AgentConfig 配置
│   ├── ir.py                  # 自定义 IR dataclass
│   ├── backend.py             # LLM 后端适配层
│   └── codecs/                # 厂商 codec
│       ├── deepseek.py        # DeepSeek codec
│       └── anthropic.py       # Anthropic codec
├── eval/                      # 评测框架
│   ├── cli.py                 # 评测 CLI 入口
│   ├── harness.py             # Agent 驱动 + 真验收(verify/metrics 接入)
│   ├── env.py                 # 每 repo venv 策展(REPO_SETUP)
│   ├── verify.py              # 验收执行器(sanity gate 双检 + F2P/P2P)
│   ├── matrix.py              # 实验矩阵展开
│   ├── reporter.py            # Markdown 报告(pass^k + 失败分布)
│   ├── metrics.py             # 确定性轨迹指标
│   ├── judge.py / rubric.py   # LLM-as-Judge(离线)
│   ├── classify.py            # 八类失败分类
│   ├── audit_tasks.py / audit_ui.py  # 任务质量筛查(HTML 打分页)
│   ├── select_verified_tasks.py      # 官方保留题选择器
│   └── tasks.json             # 31 题任务集(20 题本机可跑)
├── cli/                       # CLI 薄壳
│   ├── __init__.py            # Args + backend 创建
│   └── renderer.py            # Rich 流式渲染
├── docs/                      # 文档
│   ├── adr/                   # 18 份架构决策记录
│   ├── plans/                 # 16 份实现计划
│   ├── articles/              # 24 篇成品文章(含 README 索引)
│   ├── handoff/               # 会话交接记录
│   └── known-issues.md        # 已知问题跟踪
└── tests/                     # 586 条自动化测试

技术栈

层 选型
语言 Python 3.12
LLM API DeepSeek / Anthropic / OpenAI 兼容
记忆存储 SQLite + FTS5 (BM25)
代码索引 tree-sitter 0.26 + tree-sitter-python
代码质量 ruff + mypy + pytest (516 tests)
CLI argparse + Rich
依赖管理 uv

相关知识

Metadata

Release files for vague-code 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vague-code 0.1.0
File Size Uploaded
vague_code-0.1.0.tar.gz 163.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vague-code 0.1.0
File Interpreter ABI Platform
vague_code-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 277.4 kB

Release files / vague_code-0.1.0.tar.gz

Download URL vague_code-0.1.0.tar.gz
Size 163.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7a28c163a05677be6fa1a0fdd056afc281093599d4eaa21f8f35f22be84eff18
BLAKE2b-256 checksum
How to use checksums
cb2d6219ab1f532c27da68927ca0b717ad16df306f801a3c2aa532e74002c4f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / vague_code-0.1.0-py3-none-any.whl

Download URL vague_code-0.1.0-py3-none-any.whl
Size 113.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61637d0e9399c0bbd3b59d11ac1fa7e14a328c920160b25e1deb9d662d54d205
BLAKE2b-256 checksum
How to use checksums
96b35739b14d250233fbb2c4f93a3fdea6e7659684b2d1a2764db5e52a9c844d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page