{
 "about": "模块 2 的合成语音备忘录：脚本原文（标准答案）、虚构人名与术语。所有人物都是虚构的。录音在 https://www.ai-builders.com/resources/aibuilder2027/m02/<zh|en>/ 下。",
 "people": {
  "Jaxon": "coworker, backend",
  "Saoirse": "coworker, deployment and ops",
  "Kaitlynn": "product manager",
  "Aoife": "intern",
  "Xochitl": "designer",
  "Priya": "partner engineer",
  "Kaveh": "investor",
  "Mairead": "family (cousin)",
  "Tadhg": "friend"
 },
 "terms": [
  "Koyeb",
  "vLLM",
  "KV cache",
  "LoRA",
  "MLX",
  "AI Builder Space",
  "Superlinear",
  "intake",
  "VoiceFlow",
  "Codex",
  "prefill",
  "terminal"
 ],
 "memos": [
  {
   "id": "W01",
   "text": "So this afternoon I went over the deployment with Jaxon and Saoirse. I mean, the service is sitting on Koyeb right now, and she says the cold start is way too slow, so she wants to spin up vLLM on our own box. I said let's not rush it. Next Wednesday we'll look at the KV cache hit rate with Priya first, and then decide."
  },
  {
   "id": "W02",
   "text": "Note to self, tomorrow at ten in the morning I'm going through the VoiceFlow requirements with Kaitlynn. Last time she said the thing users care about most is that names keep coming out wrong. I think we can try a simple name list first. We don't have to jump straight to training a LoRA."
  },
  {
   "id": "W03",
   "text": "Aoife asked me today what the difference is between MLX and vLLM. I mean, I told her MLX is what you run on a Mac, vLLM is what you run on the GPU servers, and you kick off both from the shell. She still looked kind of lost, so I'll find her a real example to walk through."
  },
  {
   "id": "W04",
   "text": "Just got off the phone with Kaveh, and he asked some pretty sharp questions. He thinks the Superlinear courses depend way too much on me personally, and he asked whether the TAs could take on more of it. I mean, he's got a point. I need to think about that one."
  },
  {
   "id": "W05",
   "text": "Xochitl sent over the new design mocks. The button on the home page is way too small, you basically can't tap it on a phone. And the blue she picked doesn't match the AI Builder Space brand color, so I'll ask her to change that too before we show anyone."
  },
  {
   "id": "W06",
   "text": "Found a gotcha today. If you run intake from the shell instead of from the editor, it never loads the env file, so it quietly falls back to the old API key. I mean, nothing errors out, it just breaks later and you have no idea why. Jaxon said he hit the exact same thing last year."
  },
  {
   "id": "W07",
   "text": "Saoirse says the Koyeb bill went up a lot this month, mostly because one service never went to sleep. Somebody switched it to always-on, so it just sat there running for a few hundred hours doing nothing. I asked her to dig into the logs and find out who changed it."
  },
  {
   "id": "W08",
   "text": "Set up a call with Priya for Friday at eight at night, which is morning for her. Things to prep before then: how long prefill and decode each take, and the time to first token at a few different context lengths. Probably worth a quick chart too."
  },
  {
   "id": "W09",
   "text": "Kaitlynn wants to add a feature in the next version, where after you finish talking it pulls out the to-dos for you automatically. I think we can build it, but we need an eval set first. Otherwise we'll have no idea whether it's pulling out the right things."
  },
  {
   "id": "W10",
   "text": "Aoife got her transcription script working, so now it can run overnight and transcribe every new recording. The problem is the names are still wrong. Jaxon keeps getting spelled some other way, and so does Saoirse. Tomorrow I'll have her try adding a name list and see if that helps."
  },
  {
   "id": "W11",
   "text": "Used Codex today to rework the cleanup step in intake, and it really loves deleting all my verbal tics. I mean, some of them are kind of the point. Once they're gone it doesn't sound like me talking anymore, it sounds like a press release."
  },
  {
   "id": "W12",
   "text": "Kaveh emailed, he wants to come out to Seattle next month and meet Jaxon and Saoirse while he's here. Need to book a conference room ahead of time, and have her put together a ten-minute demo. Maybe dinner after, if he has the time."
  },
  {
   "id": "W13",
   "text": "Aoife asked if she should wait for the new Macs before she buys one. Honestly, if she's just running MLX experiments, the laptop she has now is plenty, there's no reason to wait. What she really needs is to get comfortable working in the shell."
  },
  {
   "id": "W14",
   "text": "Xochitl asked whether we should change the VoiceFlow icon. Honestly I think it's fine the way it is. As long as people recognize it, let's not mess with it. The settings page is a total mess though, so that's worth cleaning up first."
  },
  {
   "id": "W15",
   "text": "Had a three-way call with Kaitlynn and Priya. I mean, Priya's team wants to use our transcription API, but their data can't leave the country, so we might have to look at running everything locally. MLX or vLLM would both work for that."
  },
  {
   "id": "W16",
   "text": "The AI Builder Space transcription endpoint was really slow today. Saoirse looked into it and said the upstream provider was backed up. So it's not our fault, but we still need to add a timeout and a retry so it doesn't just hang."
  },
  {
   "id": "W17",
   "text": "Jaxon had an idea: log every spot where I fix something by hand, and then apply the same fix automatically next time. I mean, the direction's right, but somebody has to review what gets saved, or the wrong stuff gets remembered too."
  },
  {
   "id": "W18",
   "text": "Aoife's intern weekly report was really solid this week. She wants to try training a small LoRA model to handle the corrections. I told her to hold off, build the eval set first, and then we can talk about training."
  },
  {
   "id": "W19",
   "text": "Talked to Kaveh again. He said what investors care about most is whether anybody actually uses it every day. A great demo doesn't matter, retention does. And yeah, I think he's right about that. Need to start tracking it properly."
  },
  {
   "id": "W20",
   "text": "The deploy token expired, so before the next release I have to paste a fresh one into the shell and rerun the script. And remind Xochitl the App Store screenshots need to be redone at the new sizes. I mean, review is pretty strict right now."
  },
  {
   "id": "L01",
   "text": "On the way home, stop at the Shell and fill up, then grab eggs and milk, we're out of both. Mairead's coming over this weekend, so maybe pick up some oranges too, and that sourdough she likes from the bakery."
  },
  {
   "id": "L02",
   "text": "Tadhg says the beach by his place is great right now at low tide, and he asked if we want to come down. Saturday morning around nine works. Bring the kids, they can each find a shell to take home, and we'll grab lunch at his place after."
  },
  {
   "id": "L03",
   "text": "Reminder, the kids' kindergarten is doing a snack share next week. The teacher said cut-up fruit or crackers, and no peanuts. Hard-boiled eggs are fine too. I mean, just peel them first so there's no shell left on. I need to get it all ready Thursday night."
  },
  {
   "id": "L04",
   "text": "Mairead sent me her taco recipe. She swears by the hard ones, and the trick is to warm each shell in the oven for a couple of minutes so it doesn't crack, and then fill the shell right before you eat. Let's try it this weekend. Remember to preheat."
  },
  {
   "id": "L05",
   "text": "Gas at the Shell by the school went up again, and the Costco one is like forty cents cheaper. I mean, we drive past it every day anyway, so let's just fill up there. The kids won't care which one it is."
  },
  {
   "id": "L06",
   "text": "Tadhg wants to come over for dinner this weekend. For the menu, I'm thinking a beef stew and a salad, and some of that shell pasta for the kids, since they won't touch the stew. Then grapes and something sweet after."
  },
  {
   "id": "L07",
   "text": "Got my checkup results back. The doctor said more vegetables and less sugar. I mean, nuts are fine, but get the pistachios that are still in the shell, so I eat them slower. And no more snacks at night, and a walk after dinner."
  },
  {
   "id": "L08",
   "text": "The kid asked me today why a hermit crab has to move into a new shell. I told him it keeps growing and the old one gets too tight, so it has to find a bigger one. He seemed to get it, which was kind of nice."
  },
  {
   "id": "I01",
   "text": "I'm more and more convinced most people are learning AI the wrong way. Everyone's chasing the new nouns, MCP this month, skills the next, but what actually separates people is the verbs, what you do with it. I mean, the nouns are stale in three months."
  },
  {
   "id": "I02",
   "text": "I think prompt engineering is basically dead. The models are smart enough now that what you need isn't better wording, it's the right context. If you're spending your time polishing phrasing, that time is mostly wasted. Put it into what the model gets to see."
  },
  {
   "id": "I03",
   "text": "I think the whole multi-agent role-play thing is wrong. Having one agent play the product manager and another one play the engineer doesn't actually mean anything. The only real value of multiple agents is that it keeps their contexts apart."
  },
  {
   "id": "I04",
   "text": "Naive RAG is basically useless for agents now. My take is, instead of chunking everything and doing vector search, just let the agent browse the folders and open files when it needs them. It works better, and it's way easier to debug when it goes wrong."
  },
  {
   "id": "I05",
   "text": "I don't think TDD is the answer in the AI era. I mean, the AI will find a way to make the tests pass instead of getting the thing right. What you actually need is an eval it can't touch, not more unit tests."
  },
  {
   "id": "I06",
   "text": "I think most companies don't need fine-tuning at all. Fine-tuning changes behavior, it doesn't add knowledge. If you want the model to know about your company, you give it the context. You don't train it. Training is the expensive way to get a worse answer."
  },
  {
   "id": "I07",
   "text": "I'm starting to think AI memory features do more harm than good. Remembering ten right things matters less than not remembering one wrong thing. I mean, one bad memory keeps poisoning every conversation after it, so I'd rather it stored less."
  },
  {
   "id": "I08",
   "text": "Approving every step is an illusion of control. You click yes a hundred times and you're not really reading any of it. Real safety comes from sandboxes and being able to roll back, not from a human staring at every single step."
  },
  {
   "id": "I09",
   "text": "My take is, a one-person company is capped by sales, not by productivity. AI lets you build faster, but if nobody's buying, building faster doesn't help at all. So figure out who's actually going to use it before you build anything."
  },
  {
   "id": "I10",
   "text": "I think tokens per second is the most misleading performance number out there. I mean, an agent spends most of its time reading input, not writing output. If you pick a model by how fast it generates, you're probably picking the wrong one."
  }
 ]
}