xun · 终端会话¶
在当前目录里以 REPL 方式与智能体对话。
xun # 交互式
xun "Write a hello world python script and save it to hello.py"
xun --non-interactive "one shot prompt"
参数¶
| 参数 | 形式 | 默认 | 说明 |
|---|---|---|---|
instruction |
位置参数,可选 | 空 | 首条指令;非交互模式下必填 |
--non-interactive |
开关 | False |
单轮执行后退出,不进入 REPL |
只有当 stdin 与 stdout 都是 TTY 且未指定 --non-interactive 时才进入交互模式;否则要求提供指令,缺失则报 Instruction is required in non-interactive mode.。管道、重定向、CI 环境都会自动落到非交互分支。
对应的 Python API:
from xun import setup_agent, interactive_session
agent = setup_agent(default_tools=True, default_commands=True) # 已 initialize()
interactive_session(agent, task="")
输入语法¶
| 输入 | 含义 |
|---|---|
| 任意文本 | 作为用户消息(含图片时见下一行) |
[image:cat.png image:https://example.com/dog.png] 比较这两张图 |
附带图片;每个 token 必须以 image: 开头,缺少 ] 会抛 Invalid image syntax: missing closing ']'.,它发生在读取输入阶段、不在会话循环的捕获范围内,会话随即退出。只接受 PNG/JPEG/WebP/GIF,单个资源不超过 10 MB,超限按普通错误报出 |
/命令 参数 |
执行会话命令,见下表 |
\/不是命令 |
以 \/ 开头表示普通消息,用于避开命令前缀 |
| Ctrl+C | 取消当前执行:弹出最后一条用户消息并打印 Execution interrupted by user. |
任何命令都可以加 -h / --help 查看长帮助,例如 /policy -h。
会话命令¶
xun 注册三类命令:内置默认命令、policy 策略命令组(使用默认工具集时)、以及终端专有的三条命令。
| 命令 | 说明 |
|---|---|
help |
显示命令列表 |
tokens |
显示会话已用 token 数 |
history |
显示历史消息 |
clear |
清空历史(保留系统提示);clear all 同时清理临时目录中的文件 |
continue |
继续执行 |
retry |
从最后一条用户消息重新开始并立即执行 |
revise |
回到最后一条用户消息(编辑后用 continue 继续) |
compact |
压缩会话;compact toolcall 只压缩旧工具结果 |
config |
打印当前生效的配置 JSON |
tools |
列出已注册工具(含所需模型能力) |
extensions |
列出发现的扩展及其状态(loaded / uninitialized / skipped / failed) |
save |
保存当前会话历史 |
load latest / load 000003 |
载入最近一次或指定编号的历史(编号按目录名原样匹配,需补零到 6 位) |
yolo |
切换自动确认(You Only Look Once) |
long [终止标记] |
进入多行输入模式,默认以单独一行 . 结束 |
render <路径> |
把会话历史渲染成 HTML 写入指定文件 |
exit |
退出 |
policy:权限允许列表¶
写操作与命令执行受允许列表约束(详见 工具系统)。
| 子命令 | 说明 |
|---|---|
policy path_allowlist_add <路径> |
允许写入某文件或目录 |
policy path_allowlist_remove <路径> |
移除写入允许项 |
policy path_allowlist |
列出写入允许列表(目录带结尾 /) |
policy cmd_allowlist_add <命令> |
允许某条命令免确认 |
policy cmd_allowlist_remove <命令> |
移除命令允许项 |
policy cmd_allowlist |
列出命令允许列表 |
历史与持久化
save / load 使用 Store,落盘路径为 {XUN_HOME}/conversation/{NNNNNN}.conversation/conversation.json,load latest 取编号最大的一份。