tripwright
方法论 v0.2 · 草稿 · 精简版Method v0.2 · draft · short version

为什么偏好会被忘Why preferences get lost

需求处理,是维护一份“此刻谁要什么、管到哪、有多强、从哪来、到何时”的活记录,并且在每次产出之前,把适用的那一部分取出来逐条核。只记不取,等于没记。

Handling requirements means keeping a live record of who wants what, where it applies, how strongly, where it came from, and until when. And before every output, pulling out the part that applies and checking it item by item. A record that is never read back might as well not exist.

本页说明工作法。当前程序在每问返回相关记忆与提问指引,宿主模型仍需实际使用;这不是模型永不遗漏的保证。旅行计划只有用户明确说“必须”的项才保护,其他选择可带理由调整,并在回答中说明。

This page explains the method. The service returns relevant memories and questions each turn; the host model must still use them. It does not guarantee that a model will never omit a condition. Only explicit musts protect trip choices; other choices may change with reasons disclosed in the answer.

这套方法不只用于旅行。凡是“需求由人说、由 agent 执行和整理、说法会多轮变化”的任务都适用:软件建设、生活事务、研究项目。换的是条目的种类和范围的取值,动作不变。

The method is not specific to travel. It fits any task where a person states the requirements, agents carry them out, and the wording changes over many rounds: building software, everyday errands, research projects. What changes between tasks is the kinds of items and the values of their scope; the actions stay the same.

为什么会忘Why it happens

记得很全,用得很少Recorded well, used rarely

偏好即使记下了,几天后排计划时仍可能没用上,用户只好重复纠正。问题可能出在“用”:出方案时,没有把已存的偏好取出来。

A preference can be recorded and still be ignored when a plan is made days later, leaving the user to repeat it. The failure can be in applying it: nobody retrieved the stored preference before planning.

以前的冲突检查只在新话进来时跑,比的是新话和旧决定有没有矛盾。可这类错不是新旧矛盾,而是排计划时根本没取。所以要把“取出适用的条件”放进出方案的固定步骤,程序负责取出,宿主模型仍需使用。

Earlier conflict checks ran only when a new message arrived, comparing it with old decisions. But this kind of error is not a conflict between old and new; the old items were simply never fetched at planning time. So "pull out the applicable conditions" has to be a fixed step of making a plan, the service retrieves the conditions, and the host model must still apply them.

例(虚构):米拉第一天说“走路别太多,膝盖受不了”。第三天重排时,模型只看到最近几句话,排了一段 50 分钟的上坡。这句话一直在聊天记录里,只是没人在出方案前把它取出来。Example (fictional): on day 1 Mira says "not too much walking, my knee can't take it". On day 3 the model re-plans from the last few messages and adds a 50-minute uphill walk. The sentence was in the chat history all along; nobody pulled it out before planning.
三个环节Three stages

进、存、出In, store, out

需求从说出到被用上,要经过三个环节,失败也正好分三类。每个环节都有一个成熟领域解决过同样结构的问题,这套方法借的是它们的做法。

A requirement passes three stages between being said and being used, and failures fall into the same three groups. For each stage, a mature field has already solved a problem with the same structure; the method borrows from them.

进:像编译器In: like a compiler

原话是源码,条目是中间表示。源码不丢,条目能从原话重拆;每条条目带原话指针,像编译错误带行号。软偏好像警告,可以权衡掉但要报出来;硬约束像错误,不满足的方案无效。语音转写里可疑的词先确认,不一路自信地解释下去。

Your words are the source code; items are the intermediate form. The source is never thrown away, so items can be rebuilt from it, and each item points back to the words it came from, like a compiler error points to a line. Soft preferences are like warnings: they can be traded off but must be reported. Hard constraints are like errors: a plan that breaks one is invalid. Suspicious words in a voice transcript are confirmed first, not confidently explained away.

存:像法律裁冲突Store: like law resolving conflicts

  • 后法优先:同一对象、同一范围,新的取代旧的。
  • 特别法优先:范围更窄的,在它的范围里优先;出了范围,旧的照旧有效。“今天我一个人”只改今天,不改“四人同行”。
  • 上位法优先:手段和仍有效的目的冲突时,目的优先;不悄悄选一边,要写出冲突。
  • 先区分对象、主体、范围、时段,相同才谈取代。已付款的决定不被新说法自动撤回,只标“待复核”。agent 对一个词的理解只是推荐,不能当成用户的话。
  • Later rule wins: for the same object and scope, the newer statement replaces the older one.
  • Narrower rule wins: a narrower statement takes priority inside its scope; outside it, the older one still holds. "I'm alone today" changes today only, not "four of us travel together".
  • Higher rule wins: when a means conflicts with a goal that still holds, the goal wins; the conflict is written down, not silently resolved.
  • First check whether object, person, scope and time really are the same; only then talk about replacement. Paid decisions are not undone automatically by new words; they are flagged for review. An agent's reading of a word is a suggestion, never the user's words.

出:像数据库的视图Out: like a database view

原话是只追加的事件日志,条目、决定、计划都是从它推出的视图。最要紧的一条:视图建了没人查,等于没建。所以出方案这个动作必须先查视图,取出适用集。

Your words form an append-only event log; items, decisions and plans are views derived from it. The key point: a view that nobody reads is useless. So making a plan must start by reading the view and taking out the applicable set.

进IN 收·拆·标record 借编译器:原话不丢,条目带指针From compilers: keep the source 防:丢了条件、强度、主体Fails: lost condition or strength 防:把 agent 的理解当成原话Fails: a guess stored as your words 条目items 存STORE 连·裁·定resolve 借法律:后法、特别法、上位法From law: later, narrower, higher 防:新旧关系判错Fails: wrong old-vs-new call 防:过期的还当现行Fails: expired items still active 现行视图active view 出OUT 用·核·传apply 借数据库:视图建了必须有人查From databases: views must be read 每次出方案前先取适用集Every plan reads the applicable set 防:记了,用的时候没带上Fails: recorded but not used ↺ 控制回路:用户第二次说同一要求,就是误差信号。↺ Control loop: a repeated request is an error signal. 查是哪一步没起作用,在那一步的结构上修,Find the stage that failed and fix its structure, 不再加一行规矩。rather than adding one more rule.
三个环节各借一个领域的做法,各防一类失败。右侧虚线是方法自身的改进回路。 Each stage borrows from one field and guards against one kind of failure. The dashed line on the right is how the method improves itself.
存什么What to store

五种对象,两份账Five kinds of record, two logs

  • 原话:逐字,只追加。记谁说的、何时、经哪个通道(打字、语音转写、截图、宿主转述)。
  • 条目:一条只说一件事。种类按它在推理里的作用分:目标、约束(硬)、偏好(软)、规矩(系统怎样工作)、授权与停令。一次性的查询不建条目,答完就结束。
  • 实况:已经发生、正在成立的事:已买、已存、已去过、谁和谁在一起。实况不参与权衡,只被新的实况纠正。
  • 决定:问题、选项、选了哪个、谁定、依赖哪些前提,以及回头条件(“下雨就走室内那一支”)。
  • 待核:还没核过就先用了的东西。必须有到期时刻:没有到期的待核,等于没有。
  • 两份账:待定(要用户定的问题,带推荐和默认);流水(每条原话改了什么,没有冲突也记一行)。
  • Your words: verbatim, append-only. Who said it, when, through which channel (typed, voice transcript, screenshot, relayed by the host app).
  • Items: one thing per item. Kinds follow their role in reasoning: goal, constraint (hard), preference (soft), rule (how the system should work), permission or stop order. One-off questions get no item; they end when answered.
  • Facts: things that have happened or are true now: bought, stored, already visited, who is with whom. Facts are never traded off; only newer facts correct them.
  • Decisions: the question, the options, the choice, who chose, what it depends on, and when to switch ("if it rains, take the indoor branch").
  • Open checks: anything used before it was verified. Each has a due time; an open check without one is as good as none.
  • Two logs: open questions for the user (with a recommendation and a default), and a change log (what each message changed; one line even when nothing conflicts).

每条条目的八个属性Eight attributes per item

  1. 主体:管谁
  2. 范围:管到哪(某天、某地、某个通道)
  3. 强度:必须、禁止、最好、能去就去
  4. 条件:在什么情形下成立,“除非什么”
  5. 有效期:从何时到何时,或一次性
  6. 来源与把握:原话指针;用户明说还是 agent 推断
  7. 状态:现行、待核、被取代、过期、已满足
  8. 关系:取代谁、细化谁、和谁冲突
  1. Subject: who it is about
  2. Scope: where it applies (a day, a place, a channel)
  3. Strength: must, must not, prefer, "if we can"
  4. Condition: when it holds, "unless what"
  5. Validity: from when to when, or one-off
  6. Source and confidence: a pointer to your words; stated by you or inferred by an agent
  7. Status: active, to check, replaced, expired, met
  8. Relations: replaces, refines, or conflicts with which items
只填原话支持的字段,不替用户编值。理解错了的条目会被包装成“可精确执行”,下游照着执行得更稳。所以软偏好保留原句和理由,不硬换成数字;agent 的理解写成“候选解释”,标明用户确认没有;原话没给的字段写“未知”。Fill only the fields your words support; never invent values. A misunderstood item, once structured, looks precise and gets executed faithfully downstream. So soft preferences keep your sentence and reason instead of a made-up number; an agent's reading is stored as a "candidate interpretation" marked confirmed or not; anything you did not say stays "unknown".
做什么What to do

九个动作,重点是“用”Nine actions; the key one is "apply"

  1. 收:每条消息逐字入档。
  2. 拆:一条消息里的查询、实况、偏好、规矩分开,各走各的时序:查询现在答,其余记下。
  3. 标:填八个属性;程度词和条件词原样保留。
  4. 连与裁:找同一对象的旧条目,按“存”的规则裁;拿不准的进待定。
  5. 定:写决定和回头条件。
  6. 用(以前缺的一步):每次产出之前,取出适用集:主体相关、范围覆盖、仍在有效期的现行条目,加上相关实况和未关的待核。逐条标满足、权衡掉(写理由)、不适用。新的一句是加进适用集,不是替换它。
  7. 核:产出对照适用集和原话;事实回第一手来源核,记核的时刻。核验者拿独立的输入,不只核作者列出的项。
  8. 传:条目或决定变了,重算受影响的范围,并重跑全部硬约束;旧版本的结果作废,不覆盖新的。
  9. 学:同一要求被说第二次时,查是哪一步没起作用,在那一步修。
  1. Record: store every message verbatim.
  2. Split: separate questions, facts, preferences and rules in one message; answer questions now, record the rest.
  3. Tag: fill the eight attributes; keep degree words and conditions as said.
  4. Link and resolve: find older items about the same thing and apply the "store" rules; anything unclear becomes an open question.
  5. Decide: write the decision and when to switch.
  6. Apply (the step that used to be missing): before every output, take the applicable set: active items whose subject, scope and validity cover this moment, plus relevant facts and open checks. Mark each as met, traded off (with the reason), or not applicable. A new message is added to the set, not swapped in for it.
  7. Check: compare the output with the applicable set and your words; verify facts at the first-hand source and note when. The checker gets independent inputs, not just the author's list.
  8. Propagate: when an item or decision changes, recompute what it affects and re-run every hard constraint; results based on an old version are discarded.
  9. Learn: when the same request is said a second time, find the step that failed and fix it there.

按情形调深度Depth depends on the situation

一句快问A quick question

“这个车在几站台”:只取和这一问相关的人、地点、时刻和对话规矩,直接答。不做全量核验。

"Which platform?": take only the conditions for this person, place, time and channel, and answer. No full check.

出方案或重排A plan or re-plan

完整走“用”和“核”。分两段:先给能照着走的下一步,再逐条核硬节点;网站在回答之后更新。

Full "apply" and "check", in two parts: the next step first, then every deadline checked; the website updates after the answer.

一大批新要求A batch of new requests

派一个 agent 专门拆,逐点标出处、种类、依赖与冲突,不替用户定取舍;收口时从原话重拆一遍对照。

One agent splits them, marking source, kind, dependencies and conflicts for each point, without choosing for the user; at the end, re-split from the original words and compare.

这是需求处理工作法的精简说明。它说明如何保存来源、区分范围并取回适用条件;具体产品能力与连接限制见首页。This is a short explanation of the requirements method: retain sources, distinguish scope and retrieve applicable conditions. See the homepage for implemented features and connection limits.

← 回到首页← Back to home