跳转到内容

核心概念

八千代里大概就十来个概念。把它们弄清楚,设置界面就不再是迷宫了。

线程就是一段对话。和大多数聊天应用不同的是,线程是一棵,不是一个列表:你可以从任意一条消息分叉出去、拿到一个不同的回复,并且两个都留着。同层的多个回复都可以来回切换,不会互相覆盖。

这一点重要,是因为对比才是你实际的工作方式 —— 两种语气、两种思路、两个模型回答同一个问题。分叉把这件事变成一等操作,而不是靠复制粘贴凑出来的。

线程存在 ~/.yachiyo/yachiyo.sqlite,支持全文搜索,应用里和 yachiyo thread search 都能搜。

一次运行就是智能体循环的一次执行:你的消息进去,模型思考、调工具,产出一个回复。运行有状态(runningcompletedfailedcancelled)和 token 开销,两者在界面上都看得到。

运行是可打断的。回复流式输出的过程中,你可以干预它 —— 发一条中途落地的纠正 —— 或者排队一条后续消息等它结束再处理。回车对应哪一个,在 设置 → 通用 → 行为 里配置。

运行模式决定这一轮里智能体能碰哪些工具。模式在输入框里选,只对该次运行生效。

模式能做什么
Auto所有已启用的工具 —— 编辑、shell、浏览、委派、自动化。默认。
探索readgrepglobwebReadwebSearch。只读只搜,绝不写入。
计划探索模式的工具,外加 writebash,用于在动真格之前先起草一份方案。
聊天完全没有工具。只用已有的对话和上下文回答。

模式是一条安全边界,不是一个建议。在探索模式下,编辑类工具不是「不鼓励使用」—— 它们根本不在模型的工具列表里。

在模式允许的范围内,八千代默认按 YOLO 执行:直接用工具,而不是每一步都来问你要授权。你划线的地方是模式,不是确认弹窗。

工作区是一个线程运行所在的目录。工具调用里的相对路径从这里解析,文件编辑也限定在其中,除非智能体用了绝对路径。

设置 → 能力 → 工作区 注册工作区,然后按线程挂载。一次运行中智能体改动的每个文件都会被快照,所以事后你可以复核 diff,而不是听它自己怎么说。

工具是把模型变成智能体的东西。完整列表:

工具用途
readwriteeditapplyPatch读写文件。读在写之前 —— 覆盖一个文件之前智能体必须先读过它。
grepglob搜索文件内容和路径。
bash执行 shell 命令,包括长时间运行的后台任务。
jsRepl在沙箱 worker 里执行 JavaScript。
webSearchwebRead搜索网页,并以 Markdown 形式读取页面。
useBrowser驱动真实浏览器会话,做 fetch 做不到的事。
skillsRead按需加载某个技能完整的 SKILL.md
askUser运行途中提一个澄清问题,而不是靠猜。
delegateTask把工作交给子智能体或外部编码智能体。
remember保存一条持久记忆。
querySource以只读虚拟表的形式查询本地上下文源 —— 线程、记忆、活动记录。
useThingsreviewThings维护 Things:用 #name 引用的具名上下文索引。
updateProfile更新结构化档案文档 USER.md
updateTodoList维护多步骤工作的待办组件。
useSentinel设置一个对话级的周期性检查(「20 分钟后回来看这件事」)。
exitPlanMode方案敲定后离开计划模式。

这里没有逐个工具的开关。某次运行里有哪些工具,完全由运行模式决定 —— 那就是控制面,在输入框里按轮次选。

技能是一个包含 SKILL.md 文件的目录。frontmatter 给它一个 name 和一个 description,正文就是指令。

智能体一开始只看得到名字和描述。当某个看起来相关时,它才调用 skillsRead 加载全文。这样在真正需要之前,技能不会挤占上下文窗口。

没有运行时,没有清单文件,也没有注册步骤。见技能

两个模型槽位,干不同的活:

  • 聊天模型 —— 回答你的那个。按线程设定,可以按消息切换。
  • 工具模型 —— 做后台杂活:线程标题、记忆蒸馏、线程变长后的上下文交接、图转文描述、群聊探针、翻译。

工具模型有三种模式:default(复用聊天模型)、custom(指定一个便宜的模型)或 disabled(完全跳过辅助生成)。指向一个又小又快的模型通常是对的选择 —— 这些活儿频繁而且不体面。

三个容易混淆的东西:

  • 记忆 —— 通过 remember 工具保存、并在后续运行中被调取的持久事实。存在数据库里,可搜索,默认开启。
  • SOUL.md —— 助手的人格,包含一份随时间累积的特质日志。可以在应用里改,也可以用 yachiyo soul
  • USER.md —— 是谁,以结构化表格记录:背景、偏好、工作方式。智能体通过 updateProfile 工具维护它。

三者都会进入系统上下文,也都在每个线程和频道里生效。见记忆与人格

一个 Thing 是一个具名的上下文索引 —— 一个项目、一个决策、一段长期进行的工作 —— 你在对话里用 #name 引用它。对话会作为来源挂到 Thing 上,于是未来的线程可以直接接上某个话题,不用你重新解释一遍。

Things 不是待办也不是提醒。它们是比任何单次对话活得更久的稳定话题。

频道把一个外部平台 —— Telegram、QQ、Discord —— 接到同一个本地实例上。消息以线程的形式进来,共享记忆和人格。

两种角色很关键:

  • 主人 —— 你。完整工具权限、完整记忆,私聊按第一方处理。
  • 访客 —— 其他所有人。沙箱工作区、过滤后的记忆、按用户的 token 限额,以及明确的允许/拉黑状态。

群聊还多一个群讨论模式:一个便宜的探针模型潜水观察对话,只在机器人确实该说话时才唤醒完整模型。见频道

定时任务自己跑一段提示词 —— 要么按 cron 表达式循环,要么在某个具体时间执行一次。每次触发都会新建一个线程,以完整工具权限执行提示词,记录结果,然后归档线程。

定时运行是八千代在你不在场时干活的方式。见定时任务

两个值得知道的小便利:

  • 常用入口(Essentials) —— 预设的线程启动器,各自带图标、工作区、模型和隐私设置。一次点击,就开好了那个你经常开的线程。
  • 提示词(Prompts) —— 绑定到某个触发码的文本片段,在输入框里展开。

被标记为私密的线程不会出现在搜索结果和命令行列表里,除非你显式传 --include-private。这是你自己机器内部的一条可见性边界,不是加密。