跳到正文
heng-agent v0.5.0
Esc

版本

更新日志

heng-agent 各版本改了什么,取自仓库的 CHANGELOG.md,跟着发版同步。升级运行 heng-agent upgrade。

0.5.0 最新

回答过程中输入框一直在:可以接着打字、插话、随口问一句(/btw);有了后台子智能体与子智能体面板;答完给一句灰字的「下一句建议」,Tab 采纳;回复顶格、复制干净;上下文长度自动识别;OpenAI 协议也能看到缓存命中、算准花费。

  • 交互:
    • 回答中输入框一直在:可以接着打字,Enter 排队,这一问结束后按顺序发出;说的话在这批工具跑完时就插进这一问(插话);/status、/effort 等不发给模型的命令马上执行;↑ 能取回排队的话来改;
    • 打断与清空照 Claude Code:回答中 ESC / Ctrl+C 打断这一问(框里有草稿也打断);平时双击 ESC 才清空输入框,清掉的草稿按 ↑ 能找回;
    • /btw 问题:旁支问题——回答中、平时都能随口问一句,不打断正在进行的回答、不进对话历史、不调工具,答案显示在一个框里;
    • 子智能体面板与后台子智能体:模型可以把子任务派到后台,主对话照常继续,做完自动把结论交回来;输入框下方列出正在跑的子智能体,↓ 进入、↑↓ 选、Enter 查看它在做什么、ESC 返回;
    • 下一句建议:每一问答完后,空的输入框里灰字给一句你可能接着要说的话,Tab 或 → 采纳,打字就消失;没有明显的下一步、计划模式里不给。主对话的请求读写过缓存时照它的前缀发,几乎全部读缓存(实测 DeepSeek:读缓存 1.5 万、新算不到 200 token);服务不缓存时只带最近 3 问。不想要就写 "prompt_suggestions": false;
    • 回复顶格:拖选复制不再带上缩进;代码块上方一行灰字写语言、不铺背景;
    • /copy N 复制倒数第 N 条回复;回复里有代码块时弹出选择,能只复制其中一段代码;
    • 转圈那一行显示这一问已经输出了多少 token(「↓ 31.8k tokens」);等服务重试时原地显示原因与第几次重试,不再刷屏;
    • 状态栏的输出速度低于 15 t/s 时标成橙色;
    • 间距:块与块之间统一空一行,不挤也不空两行;输入框上边框不再写按键提示,挪到了欢迎页,/help 里有全的。
  • 扩展:
    • 上下文长度自动定:配置档写了 context_window 就用它,否则向服务商的接口查(Anthropic 的 max_input_tokens),查不到按模型名推断(Claude、DeepSeek、Kimi、GLM、通义、OpenAI、Gemini、MiniMax),再不行用设置里的默认值;/status 写明长度是从哪来的。Anthropic 预设不再写死 200k;
    • 缓存价格:配置档可以填 price_cache_read / price_cache_write(每百万 token),不填按输入价的 0.1 倍 / 1.25 倍。
  • 修复:
    • OpenAI 协议的缓存命中没读出来(DeepSeek、通义、Kimi、OpenAI 都会自动缓存):/stats、花费、状态栏都当成全部没命中,花费偏高;现在按各家的字段读出命中数;
    • 长段中文回复里一整串汉字被截断、字丢了;
    • 连接超时(TLS 握手超时、写超时)不重试、报英文错误:现在和别的网络错误一样自动重试;
    • 窗口变窄后旧输入框的上边框留在屏幕上;回答中窗口变窄后段落还按旧宽度排版;
    • 上下文长度变成 1M 的模型上,MCP 工具声明按 1M 的比例算门槛、一次全部发出去(实测 14.7 万 token):门槛最多按 200k 算。

0.4.0

计划模式能「先出计划、批准后再动手」;有了思考强度;状态栏改成两行,能看到 MCP 连接情况、额度;对话里提问与回复分得开、看得到每一问等了多久;可以自定义代理;修两个安全漏洞。

  • 交互:
    • 计划模式:模型读完代码交出计划,你选「开始执行(改文件前问我)」「开始执行(改文件不问)」或「继续规划」,批准后自动切到对应的权限模式接着做;
    • 状态栏改两行:第一行是项目名与 git 分支 · 模型 · MCP · 上一次的输出速度 · 上下文进度条 · 额度;第二行是权限模式与提醒。窗口窄时按优先级省略,不再截断;
    • 权限模式照 Claude Code 的写法显示「⏵ 手动确认 已开启」「⏵⏵ 自动改文件 已开启」「❚❚ 计划模式 已开启」「⏵⏵⏵ 全部放行 已开启」(auto 改叫「全部放行」:它相当于 Claude Code 的 bypass permissions);配置写法不变;
    • MCP 连接情况:状态栏显示「⠹ MCP 4」(橙,连接中,数字是已连上的)、「✓ MCP 6」(绿)、「✗ MCP 5」(红,有连不上的),宽度不变不跳动;连好后每个服务一行列出工具数,最后一行汇总与用时;欢迎页后有确认问题挡着、或输入框先出来时,连好也会立刻显示,不用等下一次输入;
    • 额度 / 余额:按服务地址认出服务商,用同一把 API key 查(每 3 分钟最多一次):DeepSeek、Moonshot、硅基流动显示余额,Kimi Code 显示 5 小时与本周期剩几次,智谱 GLM Coding Plan 显示 5 小时已用百分比,new-api / one-api 类中转站显示余额或已用多少;
    • 思考强度:/effort 选 low / medium / high / xhigh / max(或写 settings.effort),状态栏显示「✻ high」;请求按模型自动适配:Claude 4.6 以后用自适应思考加 effort(以前的 budget_tokens 写法在 Sonnet 5、Opus 4.7 及以后、Fable 上会被拒收),Opus 5.5、Sonnet 5.5、Fable 关不掉思考时按 low 少想,DeepSeek、Kimi、GLM 等仍用思考预算,OpenAI 协议发 reasoning_effort;
    • 对话样式:提问每行左侧一根青色竖条、文字同色,AI 回复不加图标、缩进两格;每问结尾一行灰字写时间、用时、轮数与 token;
    • 等了多久看得见:等待动画括号里的时间一直在走(等模型时是这一问一共等了多久,跑命令时是命令跑了多久并带上超时),跑了 1 秒以上的工具在结果后面写上用时;
    • 运行日志:数据目录的 logs/heng-agent.log;意料之外的错误不再甩一屏堆栈,交互会话也不会因此崩掉;/doctor copy 把检查结果连同最近的日志复制下来,反馈问题时直接贴。
  • 扩展:
    • 自定义状态栏:用户配置写 "status_line": "命令",输出替换状态栏第一行(可带颜色),命令收到与 Claude Code 的 statusLine字段一致的 JSON;写 "claude" 直接用 Claude Code 配的状态栏脚本;
    • 自定义代理:settings.proxy 管全部请求(模型、MCP、web_fetch),服务商配置档的 proxy 单独管它;可以写 direct 不走代理;项目配置里不能写代理。
  • 兼容:首次运行引导也认 Codex 的配置(~/.codex/config.toml 里用 API key 的服务商、codex login --api-key 存的密钥);不读 ChatGPT / Claude 订阅账号的登录令牌(只能给官方客户端用)。智码对接说明见 docs/integration/智码对接.md。
  • 安全:
    • grep / glob 会顺着链接读到工作目录外的文件:遍历时逐个检查,逃到外面的目录不进、文件不读;
    • 只读子智能体不守用户的拒绝规则,派出去就能读被拒绝的文件:现在照守。
  • 修复:
    • Windows 上从 PowerShell / cmd 启动时,bash 工具用了 WSL 启动器,每条命令都报 execvpe(/bin/bash) failed:现在找 Git Bash;
    • Windows 上复制到剪贴板的内容开头多一个看不见的 BOM 字符(/copy、/doctor copy);
    • --list-providers 里环境变量给的服务商写着「密钥:已写在配置文件」,其实密钥在环境变量里;
    • 内置命令与 # 记忆也要等 MCP 服务连好(/effort 要等十几秒):现在只有发给模型的话才等。

0.3.2

配了 MCP 服务时启动快多了;/agents 好看了;修两个和代理、升级有关的问题。

  • 交互:
    • 欢迎页不再等 MCP 服务连完:改为后台连接,欢迎页立刻出来(MCP 一行显示「后台连接中」),提交第一句时还没连好会等一下,Ctrl+C 跳过。本机 6 个服务实测:到欢迎页 11 秒 → 0.7 秒;
    • MCP 服务同时连接、同时关闭:退出时不再一个个等(实测 5 秒 → 不到 2 秒);
    • /agents 改成一行一个角色的总览(名字 · 只读 / 会改动 · 来源 · 一句话说明),方向键选一个看完整说明,/agents 名字 直接看;
    • 开发版只在欢迎页标题旁显示一个「开发版」徽标(以前版本行、状态栏也各有一个)。
  • 修复:
    • 开着代理软件时,连本机的 MCP 服务、heng serve、Ollama 也被转给代理:本机服务没起来时报「返回 503」看不出原因,代理不在本机时更是一律连不上。现在本机地址一律直连,其余地址照旧按代理设置走;
    • 刚发版时 heng-agent upgrade 可能升不上去(uv 用了缓存的旧版本列表):升级时刷新本包的缓存。

0.3.1

修好 Windows 一键安装的两个问题;有了 logo。

  • 修复:
    • Windows 一键安装开头报「The term '#' is not recognized」:安装脚本带了 BOM,irm | iex 时粘在第一行开头;
    • Windows 一键安装装好后在「改 PATH」那一步中断,看不到「安装完成」、还冒一段像报错的红字。
  • logo:H 的横杠换成命令行提示符「›」,青到蓝渐变(docs/brand/,含给网站、智码用的各种尺寸);欢迎页左上角换成两行方块字「HENG」,正式版青色、开发版品红。

0.3.0

第一个发布到 PyPI 的版本:一条命令就能装;能在编辑器、桌面应用里用(ACP)。

  • 安装与升级:一键安装脚本(Windows 的 install.ps1、macOS / Linux 的 install.sh)——没有 uv 自动装,pypi.org 连不上自动改用清华镜像,已装过就升级;heng-agent upgrade 升级(Windows 上有别的 heng-agent 在运行时先让你关掉,再在新窗口里等自己退出后升级——运行中硬升级会把安装弄坏);每天最多后台查一次新版本,欢迎页提示。
  • 第一次运行的引导:自动找电脑上现成的配置(环境变量里各家的密钥、Claude Code 里配的中转站)一键用上,没有就选服务商、填密钥;配好后测一下连接,失败说清楚原因(密钥不对、余额不足、连不上)。
  • 内置技能:debugging(排查问题)、writing-tests(写测试)、refactoring(安全重构)、codebase-tour(读懂项目)、security-check(安全检查);用户或项目里放同名技能可以替换。/skills 按来源分组显示。
  • ACP 模式(heng-agent --acp):智码、Zed、JetBrains 等支持 Agent Client Protocol 的客户端可以在自己的界面里驱动heng-agent——流式回答与工具调用、权限确认在客户端弹窗(改文件时带改动对比)、取消、会话列表与恢复、模型 / 权限模式 / 思考三个下拉框。对接说明见 docs/integration/acp.md。
  • 用环境变量给服务商:HENG_AGENT_BASE_URL、HENG_AGENT_API_KEY、HENG_AGENT_MODEL……只在这次运行里用、不写进配置文件,终端、-p、--acp 都认,方便别的程序启动 heng-agent 时直接给。
  • 开源:Apache-2.0,GitHub(bkywksj/heng-agent)为主仓库、Gitee 镜像;CI 在 Windows / macOS / Linux 上跑全部测试。
  • 修复:
    • 技能、子智能体的多行描述(description: |)以前只读到一个「|」,模型看不到技能是干什么的——Claude Code 写法的技能(如 ruoyi-plus-uniapp 的 60 个)在系统提示词里全没有说明;
    • 标准输入不是终端(脚本、管道)时,方向键选择器会把「输入结束」当成取消;
    • 子智能体能吞掉主任务的取消;只读的子智能体取消不了;
    • 国内连不上 PyPI 时查新版本拿到的是旧数据。

0.2.0

第一个正式版。0.1.0 之后的主要改动:

  • 交互:输入框、权限确认、Shift+Enter 换行(默认可用)、命令补全、思考模式(/think)、后台任务(Ctrl+B、/tasks)、/rewind、/resume、/diff、/context、/export、/copy、任务完成提醒。
  • 上下文:自动压缩;一下子超出模型上限时自动压缩 / 截短工具结果后重发;状态栏显示距自动压缩还有多少;模型返回空回复时自动重试一次。
  • 扩展:技能、自定义命令、自定义子智能体角色(/agents)、钩子、MCP(stdio / http、工具多时按需加载、/mcp 逐级查看与重连)、git 工作树隔离(-w、/worktree)、/init 生成 AGENTS.md。
  • 兼容 Claude Code 与 AGENTS.md:说明文件(AGENTS.md、CLAUDE.md、@ 引用、优先级)、.claude/skills、.claude/agents、.claude/commands($1、!命令)、权限规则、钩子(标准输入 JSON、JSON 决定)、.mcp.json。
  • 安全:拒绝规则对组合命令逐段检查、文件路径换写法也拦得住;项目里的钩子、MCP、命令里的 shell 都要确认信任。
  • 查看状态:/status、/usage、/stats、/hooks、/memory、/doctor。
  • 脚本模式:-p(text / json / stream-json 输出、管道输入、--allowed-tools)。
  • 开发版与正式版分开:命令、数据目录、标记各一套;配置里不认识的设置只提示不拦启动;会话文件带格式版本号。