核心概念
八千代里大概就十来个概念。把它们弄清楚,设置界面就不再是迷宫了。
线程就是一段对话。和大多数聊天应用不同的是,线程是一棵树,不是一个列表:你可以从任意一条消息分叉出去、拿到一个不同的回复,并且两个都留着。同层的多个回复都可以来回切换,不会互相覆盖。
这一点重要,是因为对比才是你实际的工作方式 —— 两种语气、两种思路、两个模型回答同一个问题。分叉把这件事变成一等操作,而不是靠复制粘贴凑出来的。
线程存在 ~/.yachiyo/yachiyo.sqlite,支持全文搜索,应用里和 yachiyo thread search 都能搜。
一次运行就是智能体循环的一次执行:你的消息进去,模型思考、调工具,产出一个回复。运行有状态(running、completed、failed、cancelled)和 token 开销,两者在界面上都看得到。
运行是可打断的。回复流式输出的过程中,你可以干预它 —— 发一条中途落地的纠正 —— 或者排队一条后续消息等它结束再处理。回车对应哪一个,在 设置 → 通用 → 行为 里配置。
运行模式决定这一轮里智能体能碰哪些工具。模式在输入框里选,只对该次运行生效。
| 模式 | 能做什么 |
|---|---|
| Auto | 所有已启用的工具 —— 编辑、shell、浏览、委派、自动化。默认。 |
| 探索 | read、grep、glob、webRead、webSearch。只读只搜,绝不写入。 |
| 计划 | 探索模式的工具,外加 write 和 bash,用于在动真格之前先起草一份方案。 |
| 聊天 | 完全没有工具。只用已有的对话和上下文回答。 |
模式是一条安全边界,不是一个建议。在探索模式下,编辑类工具不是「不鼓励使用」—— 它们根本不在模型的工具列表里。
在模式允许的范围内,八千代默认按 YOLO 执行:直接用工具,而不是每一步都来问你要授权。你划线的地方是模式,不是确认弹窗。
工作区是一个线程运行所在的目录。工具调用里的相对路径从这里解析,文件编辑也限定在其中,除非智能体用了绝对路径。
在 设置 → 能力 → 工作区 注册工作区,然后按线程挂载。一次运行中智能体改动的每个文件都会被快照,所以事后你可以复核 diff,而不是听它自己怎么说。
工具是把模型变成智能体的东西。完整列表:
| 工具 | 用途 |
|---|---|
read、write、edit、applyPatch | 读写文件。读在写之前 —— 覆盖一个文件之前智能体必须先读过它。 |
grep、glob | 搜索文件内容和路径。 |
bash | 执行 shell 命令,包括长时间运行的后台任务。 |
jsRepl | 在沙箱 worker 里执行 JavaScript。 |
webSearch、webRead | 搜索网页,并以 Markdown 形式读取页面。 |
useBrowser | 驱动真实浏览器会话,做 fetch 做不到的事。 |
skillsRead | 按需加载某个技能完整的 SKILL.md。 |
askUser | 运行途中提一个澄清问题,而不是靠猜。 |
delegateTask | 把工作交给子智能体或外部编码智能体。 |
remember | 保存一条持久记忆。 |
querySource | 以只读虚拟表的形式查询本地上下文源 —— 线程、记忆、活动记录。 |
useThings、reviewThings | 维护 Things:用 #name 引用的具名上下文索引。 |
updateProfile | 更新结构化档案文档 USER.md。 |
updateTodoList | 维护多步骤工作的待办组件。 |
useSentinel | 设置一个对话级的周期性检查(「20 分钟后回来看这件事」)。 |
exitPlanMode | 方案敲定后离开计划模式。 |
这里没有逐个工具的开关。某次运行里有哪些工具,完全由运行模式决定 —— 那就是控制面,在输入框里按轮次选。
技能是一个包含 SKILL.md 文件的目录。frontmatter 给它一个 name 和一个 description,正文就是指令。
智能体一开始只看得到名字和描述。当某个看起来相关时,它才调用 skillsRead 加载全文。这样在真正需要之前,技能不会挤占上下文窗口。
没有运行时,没有清单文件,也没有注册步骤。见技能。
模型:聊天模型与工具模型
Section titled “模型:聊天模型与工具模型”两个模型槽位,干不同的活:
- 聊天模型 —— 回答你的那个。按线程设定,可以按消息切换。
- 工具模型 —— 做后台杂活:线程标题、记忆蒸馏、线程变长后的上下文交接、图转文描述、群聊探针、翻译。
工具模型有三种模式:default(复用聊天模型)、custom(指定一个便宜的模型)或 disabled(完全跳过辅助生成)。指向一个又小又快的模型通常是对的选择 —— 这些活儿频繁而且不体面。
记忆、灵魂与档案
Section titled “记忆、灵魂与档案”三个容易混淆的东西:
- 记忆 —— 通过
remember工具保存、并在后续运行中被调取的持久事实。存在数据库里,可搜索,默认开启。 SOUL.md—— 助手的人格,包含一份随时间累积的特质日志。可以在应用里改,也可以用yachiyo soul。USER.md—— 你是谁,以结构化表格记录:背景、偏好、工作方式。智能体通过updateProfile工具维护它。
三者都会进入系统上下文,也都在每个线程和频道里生效。见记忆与人格。
Things
Section titled “Things”一个 Thing 是一个具名的上下文索引 —— 一个项目、一个决策、一段长期进行的工作 —— 你在对话里用 #name 引用它。对话会作为来源挂到 Thing 上,于是未来的线程可以直接接上某个话题,不用你重新解释一遍。
Things 不是待办也不是提醒。它们是比任何单次对话活得更久的稳定话题。
频道把一个外部平台 —— Telegram、QQ、Discord —— 接到同一个本地实例上。消息以线程的形式进来,共享记忆和人格。
两种角色很关键:
- 主人 —— 你。完整工具权限、完整记忆,私聊按第一方处理。
- 访客 —— 其他所有人。沙箱工作区、过滤后的记忆、按用户的 token 限额,以及明确的允许/拉黑状态。
群聊还多一个群讨论模式:一个便宜的探针模型潜水观察对话,只在机器人确实该说话时才唤醒完整模型。见频道。
定时任务自己跑一段提示词 —— 要么按 cron 表达式循环,要么在某个具体时间执行一次。每次触发都会新建一个线程,以完整工具权限执行提示词,记录结果,然后归档线程。
定时运行是八千代在你不在场时干活的方式。见定时任务。
常用入口与提示词
Section titled “常用入口与提示词”两个值得知道的小便利:
- 常用入口(Essentials) —— 预设的线程启动器,各自带图标、工作区、模型和隐私设置。一次点击,就开好了那个你经常开的线程。
- 提示词(Prompts) —— 绑定到某个触发码的文本片段,在输入框里展开。
被标记为私密的线程不会出现在搜索结果和命令行列表里,除非你显式传 --include-private。这是你自己机器内部的一条可见性边界,不是加密。