Skip to content

v0.7.1 — Ecosystem Integration

Latest

Choose a tag to compare

@xianyu-sheng xianyu-sheng released this 23 Jul 03:52

[0.7.1] — 2026-07-23

版本性质: 正式发布 Agent Skills、机器可读集成 CLI、火山方舟 Ark 一等
Provider、llms.txt 优先文档检索和真实 Skill/MCP 互操作验证;该版本是 Xenon
接入 ArkCLI、VeADK 等外部 Agent 生态的稳定契约基线。

ArkCLI / VeADK 生态端到端验证

  • 新增 xenon integrations verify:默认只读检查四层 Agent Skill 根目录、MCP
    配置、stdio 命令和凭证权限;显式 --connect-mcp 后执行真实
    initialize → initialized → tools/list 协议链路。
  • MCP 验证支持按服务器选择、0.1–30 秒单请求墙钟上限和最多 32 个服务器;报告
    给出可达数、工具数、协商协议版本与握手耗时,不调用工具,也不回显 env/header
    值或 URL query。
  • MCPClient 的请求超时现同时覆盖初始化、工具发现、工具调用和资源请求;HTTP
    transport 复用同一超时配置,避免“doctor 正常但真实连接长期挂起”。
  • 使用 ArkCLI 1.0.4 的真实 +connect --path 产物验证:24 个内嵌 Skills 全部被
    Xenon 发现,加载错误为 0;生态文档同时明确 VeADK 协议兼容与正式 runtime
    适配的边界。
  • 验证结果:关联套件 79 passed、完整离线套件 1600 passed / 36 deselected;
    VeADK 官方 mcp==1.26.0 weather 示例完成 initialize/list/call 全链路 479.6 ms,
    最终 wheel 的真实握手为 460.7 ms。

llms.txt 优先文档检索

  • 新增只读 docs_fetch 工具:从文档页确定性发现站点根或 docs 子路径的
    llms.txt,解析 H1、摘要、H2 文件列表和 Optional 分组,并按用户 query
    在本地排序相关链接,不产生额外 LLM 调用。
  • 兼容 llms-full.txtllms-ctx.txtllms-ctx-full.txt;站点未提供
    llms.txt 时透明降级到原 URL 的 HTML 抓取,并在结果中返回 strategy、尝试记录、
    选中来源、失败来源和截断状态。
  • 文档抓取沿用 SSRF、DNS/IP 和逐跳重定向保护;最多发现 4 个入口、读取 8 个
    链接页、返回 30,000 字符,单个链接失败不会推翻其余有效文档。
  • ReAct、Plan-Execute、原生工具 schema、执行策略、并行只读工具、收束预算、
    上下文压缩和 /tools 已统一识别 docs_fetch

火山方舟 Ark 一等 Provider

  • 新增正式 ark/<model> provider,默认数据面为
    https://ark.cn-beijing.volces.com/api/v3,支持 ARK_API_KEY
    ARK_BASE_URL/setup 和实时 /models 发现;不再要求把方舟伪装成
    custom provider。
  • 兼容读取旧 _custom_providers 中的官方 Ark 配置;兼容视图不静默改写文件,
    删除 Ark 凭证时会清理旧条目而保留其他自定义厂商。
  • Ark 模型目录按 task_type / 输出模态过滤,只把文本生成模型加入聊天池;
    同时读取真实上下文窗口、输出上限和 function-calling 能力元数据。
  • 模型目录分页复用单个 HTTP 连接,真实 126 条目录发现由约一分钟级降至
    1 秒内;离线时回退到经过核对的文本模型列表。
  • 普通对话、流式输出和原生 function calling 复用统一 OpenAI-compatible
    协议;流式请求显式启用 usage 尾帧,缓存统计兼容
    prompt_tokens_details.cached_tokens 并保持 ark/<model> 统计身份。

Agent Skills 兼容层

  • 原有 ~/.xenon/skills/*.yaml 配方之外,新增标准目录式
    <name>/SKILL.md;兼容共享 ~/.agents/skills、Xenon 用户目录以及项目级
    .agents/skills / .xenon/skills,按“共享用户 → Xenon 用户 → 共享项目 →
    Xenon 项目”确定性覆盖。
  • 启动与 /skill list 只读取 YAML frontmatter;技能正文仅在命中时加载,
    references/scripts/assets/ 不会被预先塞入 Prompt。
  • 标准技能显式调用后进入 Xenon 的 ReAct 与权限链路,保留工具确认、执行边界和
    MCP 能力;SKILL.md 中的文字不会被误判成用户的持久记忆指令。
  • 资源读取新增目录穿越、符号链接逃逸、UTF-8、单文件 128 KiB 和最多 500 个
    资源索引保护;单个损坏技能被隔离,不再导致整个技能注册表清空。
  • 新增 /skill doctor,显示扫描根、格式计数与逐文件错误;删除项目覆盖版本后,
    下层同名用户技能会自动恢复可见。

外部集成 CLI

  • 新增 xenon integrations describe --json 版本化能力契约,公开 Agent Skills
    目录、MCP 传输能力和稳定命令模板,外部安装器无需猜测 Xenon 私有配置。
  • 新增 xenon skill install/list/doctor;安装会先校验完整目录与符号链接边界,
    使用同文件系统临时目录原子落盘,支持四种作用域和显式 --force 替换回执。
  • 新增 xenon mcp add/list/remove/doctor;stdio 环境变量和 HTTP 认证头可以通过
    stdin JSON/YAML 安全注入,结构化输出仅显示键名,不回显 token、header 值或
    URL query。
  • MCP 配置写入加入跨进程锁与 0600 原子文件权限;REPL 惰性连接链路现可把
    持久化的 stdio env 和 HTTP headers 完整传递到 transport。
  • JSON 模式保证 stdout 只含一个结构化对象;语法错误、业务错误和成功分别使用
    稳定退出码 2、1、0,便于 Ark CLI 等外部 agent helper 自动判断结果。

会话凭证安全

  • 自动保存、/save 和旧会话迁移统一移除 api_key、token、authorization、password 等凭证字段;会话只保存恢复所需的非敏感模型元数据。
  • 读取旧版会话时原子清理已落盘凭证并保持 0600 权限,不删除对话、工具轨迹或工作记忆。

用户意图与执行边界

  • 新增“仅回答 / 只读 / 可写入 / 可执行”四级逐轮执行策略;Prompt 优化、难度路由和思考范式不能把代码生成擅自升级为写盘或命令执行。
  • write_code 默认仅在对话中返回代码;“输出到对话”“不写入文件”“不要执行”等显式限制具有最高优先级。
  • 执行边界下沉到 ToolExecutor:只读任务不能写,写入任务不能执行 shell,权限确认不能越过用户当前指令授权;MCP 工具按远端动作名保守分级。
  • 新增独立 research 调研意图;“打算提交到某平台,请查一下……”按最后一个明确请求子句判定为只读,不再把背景中的“提交”误当成本轮写入授权。
  • 只读调研会从原生工具 schema 中移除 clone_repo 等写工具,底层 ToolExecutor 同时保留硬拒绝,模型无法通过重试或权限确认越界。
  • 代码落屏前新增完整性保护:过滤工具协议,校验闭合代码块,Python 使用 AST 解析;损坏或截断回复在展示前自动重试,裸代码统一包装为 Markdown 代码块。
  • 新增真实 DeepSeek 回归:用户要求“输出到对话、不写盘、不执行”时不进入 ReAct,返回代码可解析且临时目录无新增文件。

调研任务与长工具收敛

  • github_fetch 新增 repo_activity,以统一的最近 30 条 PR 抽样返回 push、更新时间、近期活动和中位合并耗时等维护信号;结果明确标注为公开样本而非厂商 SLA。
  • GitHub API 遇到限流、服务端故障或网络失败时自动降级读取公开 HTML;组织、用户和搜索页继续走通用网页读取,不再误报 owner/repo 格式错误。
  • 有副作用的写入、命令、Git 与克隆工具不再因超时被执行器自动重放;克隆超时会清理不完整缓存并返回确定性失败。
  • clone_repocommandgit 的交互式活动行持续显示已耗时、超时上限和 Ctrl+C 取消提示;成功、失败、中断与异常路径都会回收进度线程。
  • ReAct 连续三次工具失败后停止无效探索,使用已有证据生成最终答复;GitHub API/HTML 双重失败也不会无限重试。

启动模型状态

  • 提供商发现提前到欢迎卡之前,MODEL 现在展示实际已加载的首选模型与总数,不再先显示“未配置”后又加载模型。
  • 默认启动时仅抑制模型列表探测产生的 httpx INFO 噪声;-v 仍保留完整诊断,正常任务的 Ctrl+O 日志不受影响。
  • 无效提供商以脱敏摘要显示(如“认证失败 HTTP 401,已跳过”),不再输出原始请求行或响应正文;欢迎卡后统一展示可用模型和提供商数量。

家目录隐私边界

  • $HOME 现在是明确的账户边界,不再因 .gitpackage.jsonpyproject.toml 等标记被当作项目;家目录文件树、关键文件和项目规则不会自动注入模型。
  • 无项目模式仍加载用户全局指令,但项目上下文根保持为空;具体的无标记子目录仍可作为有界 scratch 工作区,不会向上继承家目录标记。
  • 记忆注册表支持无项目状态,此时只启用 usersession;普通“记住”默认落入用户全局,显式 project-local/project-shared 会要求先进入项目。
  • /memory status 明确显示未激活的项目作用域,/project refresh 同步重建记忆边界;不再以 Path.cwd() 回退并在家目录创建项目记忆文件。

权限确认可用性

  • 修复 Rich 将权限面板中的 [y][n][a][q] 误当作标记并吞掉的问题;面板现在明确显示每个操作的输入键,底部输入提示同步显示 [y/n/a/q],并接受大小写输入。

缓存观测核心层

  • 为普通、流式和原生工具调用统一生成隐私安全的 Prompt Manifest,按模型、引擎、阶段、稳定前缀、工具模式和上下文压缩代次划分缓存族。
  • 新增逐请求缓存事件:记录厂商真实 hit/miss token、字段覆盖率、预期可缓存比例、前缀效率以及 cold/warming/warm/unavailable 状态;不持久化原始 Prompt 或工具内容。
  • 本地 JSONL 历史采用有界滚动存储;明确区分“厂商返回 0 命中”和“厂商未提供缓存字段”,避免把未知错误显示为 0%。
  • Reflection、Plan、ReAct、Novel、组合引擎与 Direct 对话均标注独立调用阶段;上下文 compact、clear、undo 会开启新的缓存代次。
  • 新增 /cache status/cache explain/cache history/cache doctor,分别展示当前状态、最近一次证据、跨会话隐私安全历史和确定性诊断。
  • 状态栏使用 cold/warming/n/a/实际命中率语义;/cost 与退出报告不再把未提供缓存字段错误显示为 0%。
  • 普通文本、流式与原生工具请求统一经过五层 Prompt Compiler:STATIC、SESSION_STABLE、HISTORY、VOLATILE、CURRENT;编译器保持消息与工具协议语义顺序不变。
  • 工具 schema 和 response format 递归规范化并按工具名稳定排序,注册顺序变化不再制造新的工具前缀;动态 system 内容会进入 /cache doctor 告警而不会被静默改写。
  • AutoRouter 新增保守缓存亲和:只接受 30 分钟内厂商真实 hit 证据,并只在同 tier、健康、基础分差不超过 0.25 的模型间打破平局;显式模型、会话锁、能力和健康始终优先。
  • 新增 /cache optimize --dry-run|--apply|--disable 与真实 /fix-cache 别名;设置以私有本地 JSON 原子保存,可逆且不会改写 Prompt、工具协议或制造付费预热请求。

缓存前缀稳定性与本地版本一致性

  • 上下文注入拆分为稳定层与易变层:固定引擎指令和项目上下文前置,已有对话历史保持连续,工作记忆与按轮检索记忆靠近当前用户请求。
  • 单轮 Prompt 指导不再作为会变化的 system overlay 插到历史之前,改为绑定到本轮用户消息;提示文案不再把“结构化 Prompt”和缓存提升作未经验证的因果关联。
  • Direct 流式路径和各推理引擎的 DeepSeek 模型 ID 统一归一为 deepseek/<model>,避免 /cost 把同一模型拆成两个统计桶。
  • 欢迎页与 xenon --version 统一读取运行源码的 xenon.__version__,避免 editable install 的旧 distribution metadata 显示过期版本。

Star Core 品牌与终端活动状态

  • 正式视觉标志从圆角方形/六边形轨道更新为 Star Core:八芒氙蓝星核、非对称群星与断续轨道,小尺寸不再退化成方块。
  • 启动动画、README Logo、社交预览和工作流标题统一使用 Star Core 视觉语言。
  • 新增终端标签状态机:模型、工具和命令执行时以固定宽度星位循环闪耀;等待输入、权限确认、记忆确认和任务完成时保持静止。
  • 标签动画仅在交互式 TTY 启用,支持 CI/dumb 终端自动降级、手动关闭、ASCII 帧和退出标题恢复。
  • 活动线程惰性启动、daemon 化并在所有退出路径回收;标题写入失败不会影响模型或工具执行。

验证

  • 完整离线回归:1600 passed, 36 deselected
  • Ruff、compileall、SVG XML 校验、git diff --check、wheel 与 sdist 构建通过;家目录真实 TTY 启动下的 /project/memory status 已验证。