Transcription: OpenAgents Episode 162 - Reasoning Stream
June 9, 2026 ยท View on GitHub
Source: https://x.com/OpenAgentsInc/status/1890317831784333595 Wiki source: https://raw.githubusercontent.com/wiki/OpenAgentsInc/openagents/Video-Series.md Media title: OpenAgents - Episode 162: Reasoning Stream We connect the coding loop to the rede... Upload date: 20250214 Transcription model: gpt-4o-transcribe-diarize Generated at: 2026-06-01T05:42:17Z
Machine-generated transcript. Review speaker labels and wording before using this as quote-grade source material.
[00:00] Christopher David: Alright, took a few hours today and made the UI prettier in line with our designs and also built a little demo here where this is connecting to the Rust server and getting a stream of WebSocket events and in this video we're going to connect this stream to the loop that we did yesterday.
[00:21] Christopher David: So we had a lot of this stuff kind of going on in the background,
[00:24] Christopher David: I was kind of like...
[00:25] Christopher David: peering into the logs and trying to piece together what was happening.
[00:30] Christopher David: And the name of the game now that we have the basic loop is just to make it smarter and put in a proper algorithm for maybe some rag here,
[00:40] Christopher David: repo map here,
[00:41] Christopher David: you know, build an abstraction dex tree here.
[00:45] Christopher David: um try different things with different models just need visibility into all this stuff uh and we're going to want to expose all of this to the user anyways so may as well build this into the app
[00:56] Christopher David: so in this video we're going to focus on kind of um visualizing in the app the kinds of updates that we did uh in yesterday's video and seeing what we can learn from it and then we'll plan how to make the algorithm smarter
[01:14] Christopher David: in the next video. So let's um do this together where we kind of craft message.
[01:22] Christopher David: So we'll do this.
[01:25] Christopher David: I'm gonna start with um having open agents help build a issue
[01:30] Christopher David: and we will then use um cursor to drive it out. One of the problems that I've seen with cursor is that
[01:37] Christopher David: It's pretty aggressive about the like truncating the messages.
[01:41] Christopher David: So we can kind of lose track of the overall thing that you're working on. So having kind of like a source of truth in a GitHub issue,
[01:48] Christopher David: um I like.
[01:51] Christopher David: Uh so I did kind of like the
[01:55] Christopher David: Is it 161 we put this stuff here?
[01:58] Christopher David: I did kind of like this summary.
[02:01] Christopher David: Some good background.
[02:05] Christopher David: So let's do this. We use this as a template.
[02:10] Christopher David: Come back to here.
[02:18] Christopher David: Let's see. What do I wanted to learn? So I guess this is what we just did, but we don't have a issue for it.
[02:31] Christopher David: That's one of the problems of not
[02:36] Christopher David: Documenting everything via issues.
[02:41] Christopher David: Okay, so one thing I want to do is regenerate the repo map.
[02:45] Christopher David: And I'm on branch repo stream two. So repo map.
[02:55] Christopher David: Okay.
[02:58] Christopher David: And this would be on
[03:02] Christopher David: branch repo stream two.
[03:07] Christopher David: Onyx. Let's make that, repo stream too as well. I've got open agents and Onyx here.
[03:22] Christopher David: So I'll make new branches. We're working in both the open agents back end, Rust and Hyperview serving up most of the components and then the app itself, Onyx.
[03:34] Christopher David: chip two there.
[03:42] Christopher David: So this was a read on open agents.
[03:50] Christopher David: Be it on onyx.
[04:08] Speaker B: describing
[04:10] Speaker B: what we did that last time, we did this issue.
[04:28] Speaker B: So do I need any of these?
[04:37] Speaker B: I'll say backgrounds and I'll say issue 698, we just merged.
[04:48] Speaker B: On Onyx
[04:51] Speaker B: I'll just hap give it the hierarchy.
[05:01] Speaker B: I don't have the repo map script for Onyx yet.
[05:04] Christopher David: Cause soon I won't need it, 'cause it's all gonna be done via the the V_ form, but hierarchy is just a simple file-folder hierarchy. Uh let's see what else.
[05:25] Christopher David: We just
[05:28] Christopher David: merged six nine eight with a basic loop
[05:30] Christopher David: that goes
[05:34] Christopher David: through the full
[05:37] Christopher David: loop.
[05:40] Christopher David: And in this issue now I want us to connect it
[05:48] Christopher David: with a
[05:53] Christopher David: WebSocket stream.
[05:56] Christopher David: that we just merged also in issue did
[06:04] Christopher David: not initiate for it.
[06:08] Christopher David: I do have a PR for it.
[06:12] Christopher David: In PR seven oh one to
[06:20] Christopher David: show the updates to the user
[06:23] Christopher David: So I don't need to stream all the logs.
[06:38] Christopher David: And I'll say this will be a sub issue of 697.
[07:00] Speaker B: And if I'm doing all this stuff, I may as well do this.
[07:05] Speaker B: Just so it gets nice
[07:08] Speaker B: lots of context.
[07:14] Speaker B: Heh heh heh heh heh.
[07:25] Speaker B: Go look through all needed files.
[07:27] Christopher David: and open the issue on the open agents repo. Okay, there's probably more that I could do, but
[07:37] Christopher David: this is probably good.
[07:42] Christopher David: So let's try it.
[09:20] Christopher David: Thanks, but note that the WebSocket behaviour files you mentioned are an older implementation and our solver stuff is specifically in Boom and
[09:37] Christopher David: Boom.
[09:38] Christopher David: So please look at those files and add a comment with any clarifying notes.
[09:49] Christopher David: First let's see what it put for issue seven O_ two.
[09:55] Christopher David: And I know that we're going to add this as a sub-issue. Seven O_ two.
[10:09] Christopher David: Okay, connect server loop with web socket streaming. Connect the existing server loop with the newly merged web socket streaming functionality to provide real-time updates.
[10:16] Christopher David: Yep.
[10:45] Speaker B: Just have it do this clarification if needed.
[11:53] Christopher David: Well one thing that cursor is not good at, at least I haven't figured out how to make it good at is uh working across multiple repos. Like if I've got a front-end and a back-end.
[12:14] Christopher David: I gotta keep kinda having the m two sessions pass notes back and forth. Whereas with open agents I could just have it smartly traverse between the two.
[12:22] Speaker B: Um
[12:31] Speaker B: Alright, so a new composer.
[12:35] Speaker B: And let's say
[12:37] Christopher David: read this and look at all needed files here and make a plan.
[12:48] Christopher David: Don't edit anything yet.
[12:50] Speaker B: Just write a markdown block here with a comment I can paste into that GitHub issue with your plan.
[13:46] Christopher David: possible sections, you can post your software status, yeah yeah yeah yeah yeah cool. Alright, yeah, I'll throw this in there no problem.
[14:15] Speaker B: Thanks now.
[14:22] Speaker B: Do I have a good example of a snippet?
[14:25] Speaker B: Main.xml is getting kinda large.
[14:36] Speaker B: Do I have any other X_M_L_ files?
[14:45] Christopher David: Those are pages it looks like.
[15:18] Christopher David: Okay, please do everything in phase one.
[15:22] Christopher David: If
[15:32] Christopher David: If you have opportunity to split into smaller XML templates, do that.
[15:41] Christopher David: Now, go make all needed changes.
[15:51] Christopher David: comments in a markdown block.
[15:54] Christopher David: All right, while it does that, I'm going to get some water.
[16:42] Christopher David: Still going, huh?
[17:27] Speaker B: And screenshots here.
[17:56] Christopher David: Okay,
[17:57] Christopher David: let's see what it did.
[18:31] Christopher David: Okay, thanks. But now
[18:33] Christopher David: I get this.
[18:37] Christopher David: So try to keep that same solve demo target we had before as one place to put the stream of updates.
[18:48] Christopher David: Can rename it later, but keep for now. Then do stage two.
[19:24] Christopher David: Okay, we have our updates. No component register for tag in clooouuu
[19:29] Christopher David: Roo-oh.
[19:50] Speaker B: Was it trying to include like other templates?
[19:55] Speaker B: Yeah.
[20:44] Christopher David: Let's try this.
[20:47] Christopher David: Um you can't include a template like that in hyper view. Read this index and then read any other pages that seem relevant
[21:02] Christopher David: to learn how to do it properly. If you need my help to look at deeper links.
[21:10] Christopher David: request it here.
[21:46] Christopher David: elements.
[21:48] Christopher David: State
[21:54] Christopher David: management.
[21:58] Christopher David: Yeah, I don't think we I don't think we do that here.
[22:02] Christopher David: Hate DOS. Hate DOS.
[22:08] Christopher David: Piper Media as the engine of application state.
[23:09] Christopher David: Put it at the right file here.
[23:48] Christopher David: Nice.
[23:56] Christopher David: Uh make sure to yesterday I was telling it to not implement approve reject.
[24:05] Christopher David: It seems to really wanna put that in, maybe I'll just let it do that.
[24:10] Christopher David: Alright see we already have the approve reject handlers implemented. Let me add the files and diffs handlers.
[25:20] Christopher David: Fix all this.
[25:29] Christopher David: I wanna delete these things here.
[26:00] Christopher David: Must should be an
[26:06] Christopher David: Okay, it builds
[27:09] Christopher David: By client side I get this.
[27:16] Christopher David: With app showing XML DOM error invalid doc source. And
[27:33] Christopher David: I see on screen approve.
[27:39] Christopher David: rejects and nothing much else.
[27:45] Christopher David: And should I give it the server logs?
[28:05] Christopher David: Server logs.
[28:16] Christopher David: Where is it this says connected to chat server?
[28:21] Christopher David: Here.
[28:29] Christopher David: Whenever you're ready you can replace in WS to RS dem implementation with correct implementation.
[29:29] Christopher David: In a way this would be easier if we weren't using Rust.
[29:34] Christopher David: Uh but I think
[29:39] Christopher David: Rust's
[29:41] Christopher David: attributes are gonna make it
[29:47] Christopher David: a good bet.
[29:50] Christopher David: As this gets even more sprawling and we wanna make sure that stuff that's new
[29:55] Christopher David: Doesn't break other stuff and the very very very strict type checking at compile time is like real nice.
[30:03] Christopher David: TypeScript eat your heart out.
[32:13] Christopher David: We compile.
[32:32] Christopher David: Deep think chunk. Oh.
[32:34] Christopher David: Oh, yeah.
[32:39] Christopher David: Stop stop stop stop stop.
[32:41] Christopher David: Um...
[32:44] Christopher David: Yeah.
[32:52] Christopher David: Wow.
[32:55] Christopher David: Okay, so I'll say this is very good, but I do not see these deep seek
[33:05] Christopher David: Tokens showing in the app interface and I want to figure
[33:13] Christopher David: that out.
[33:15] Christopher David: I may also give it something
[33:24] Christopher David: here.
[33:35] Christopher David: There's something that like explained.
[33:44] Christopher David: Yeah.
[33:47] Christopher David: Read this for more basics on Hyperview.
[34:06] Christopher David: Are you going to show me reasoning in Onyx? You're going to show me reasoning?
[34:11] Christopher David: Are we going to do some test time compute here,
[34:13] Christopher David: people?
[34:14] Christopher David: Are we going to show every single freaking reasoning trace in full?
[34:21] Christopher David: Are we going to show the chain of
[34:27] Christopher David: thought and action?
[34:37] Christopher David: Yep.
[34:38] Christopher David: Yep.
[34:40] Christopher David: Yep.
[34:42] Christopher David: Okay.
[34:45] Christopher David: What do we got?
[35:07] Christopher David: for loops for loops let's throw some reasoners in for loops with some evals okay oops
[35:25] Christopher David: I killed that let's do that
[35:37] Speaker B: Fix it.
[35:41] Speaker B: Do
[36:31] Christopher David: Deep Seek R1
[37:14] Christopher David: Yeah, I want reasoners to reason about my code base. Like think about my code base. Think about other tests that we want.
[37:24] Christopher David: Ah, this is gonna be so nice, so nice.
[37:29] Christopher David: Shall we solve a demo issue? I don't even know what this is hooked up to.
[37:34] Christopher David: Oh my gosh, please please please please please work, please work, please work. No href pass to fetch element. Uh.
[38:01] Christopher David: You can see the different threads. Interesting.
[38:13] Christopher David: Client says starting deep seek.
[38:22] Christopher David: Starting Demo Repo Analysis.
[38:29] Christopher David: Deep seek analysis.
[38:31] Christopher David: Then error, no H_ ref passed to fetch element.
[38:41] Christopher David: Uh-oh.
[39:15] Christopher David: The error occurs because the behaviors in the status X_M_L_ are not properly handling the href attributes. Let me fix this by ensuring all H_ refs are properly constructed. Yeah, they gotta be properly constructed. Duh.
[39:31] Christopher David: Let me try a different approach by modif Yeah,
[39:33] Christopher David: try a different approach. Duh.
[39:43] Christopher David: Let's try it.
[40:40] Christopher David: Hangs up here. What's going on?
[40:44] Christopher David: I don't know if we should
[40:46] Christopher David: be hitting deep seek from multiple threads
[40:51] Christopher David: simultaneously.
[42:06] Christopher David: Well, now I'm worried that maybe the deep-seek API is not responding.
[42:24] Christopher David: Hangs up after this.
[42:31] Christopher David: Identify why deep-seek is streaming.
[42:32] Christopher David: was working before and now isn't.
[42:51] Christopher David: We're not properly handling the deep C KPI response and the chat stream method.
[42:55] Christopher David: Go.
[43:51] Christopher David: It streams now to log, but I again get the same error.
[43:58] Christopher David: Look at these.
[44:02] Christopher David: And notes.
[44:08] Christopher David: Process this.
[44:11] Christopher David: Should we use process chunk?
[44:18] Christopher David: I am getting the same
[44:22] Christopher David: href
[44:24] Christopher David: Same no href passed to fetch element. Same as before.
[46:06] Christopher David: I'm missing something.
[47:44] Christopher David: Oh, there we go.
[48:23] Christopher David: I see this, but still nothing shows on the mobile app.
[49:09] Christopher David: H-Ref is a pen,
[49:11] Christopher David: what the hell?
[49:50] Christopher David: Round halo for a pending content.
[49:52] Christopher David: That doesn't sound right.
[50:20] Christopher David: And, uh, and...
[50:18] Christopher David: An append end point does not sound right to me. Read this.
[52:06] Christopher David: Is it not giving me the reasoning tokens? I'm just gonna wait for it.
[52:56] Christopher David: the stream.
[53:00] Christopher David: Should I try something other than the Deep Seek API?
[53:06] Christopher David: Confirm we are streaming the thinking reasoning tokens and not waiting for the final response.
[53:17] Christopher David: Or is API slow or something else wrong?
[53:21] Christopher David: Add more debugging.
[53:41] Christopher David: Here's the cat.
[54:04] Christopher David: Excuse me cat, stress.
[55:02] Christopher David: Should I try a different API?
[55:54] Christopher David: Try one more time to get this working, otherwise we'll replace it.
[55:59] Christopher David: Over and out.
[57:22] Christopher David: Chat? Is that the model that I want?
[57:33] Christopher David: Oh.
[57:45] Christopher David: Instead of deep seek chat, try deep seek reasoner.
[57:47] Christopher David: Like here.
[58:55] Christopher David: Ooh.
[59:02] Christopher David: Okay.
[59:28] Christopher David: Come on.
[59:39] Christopher David: Okay, we got stream there,
[59:43] Christopher David: but see nothing in the app. Fix it.
[01:00:25] Christopher David: It'd be really cool if this worked.
[01:00:29] Christopher David: Reason about my issue,
[01:00:32] Christopher David: friend.
[01:01:21] Christopher David: I see a status update for the first time.
[01:02:32] Christopher David: Over time.
[01:03:13] Christopher David: What does Open Router have for reasoning models?
[01:04:04] Christopher David: Okay, now
[01:04:11] Christopher David: still just getting a bunch of keeper lives.
[01:04:15] Christopher David: Let's try open router
[01:04:19] Christopher David: with model boom
[01:04:21] Christopher David: which will still return reasoning stuff.
[01:04:42] Christopher David: Try swapping it out now.
[01:09:18] Christopher David: Why is it doing three things at once and why does it still say DeepSeekURL?
[01:12:19] Christopher David: Handling requests,
[01:12:21] Christopher David: huh?
[01:15:46] Christopher David: Setting up analysis environment.
[01:16:26] Christopher David: Is a problem that I'm trying to stream tokens but I'm asking for structured output which doesn't support that?
[01:20:31] Christopher David: Oh.
[01:20:34] Christopher David: Well that's a lot of initializing solver.
[01:20:40] Christopher David: Wait what the hell?
[01:20:43] Christopher David: Wait what the hell?
[01:21:51] Christopher David: I just see initializing solver like a hundred times
[01:22:00] Christopher David: after
[01:22:02] Christopher David: setting up analysis environment twice.
[01:24:24] Christopher David: None of these are showing on the U_I_
[01:24:28] Christopher David: That behaviour
[01:24:31] Christopher David: thing you're doing is not correct.
[01:24:54] Christopher David: Dry basic view text with the replace adds action
[01:25:01] Christopher David: our behavior.
[01:25:19] Christopher David: Yeah, the main strike against using hyper-view right now is just it's not as familiar to the L_L_M_s.
[01:25:27] Christopher David: But I still think it's gonna be worth it.
[01:26:24] Christopher David: Okay, we got some stuff.
[01:26:27] Christopher David: Receive zero chunks.
[01:26:53] Christopher David: Okay now I see the updates in the U_I_ but it's
[01:27:06] Christopher David: nothing informative.
[01:32:25] Christopher David: What the fuck is this? It says raw,
[01:32:28] Christopher David: but it's still the same dumbass summaries. Give me the actual fucking content from the LM response.
[01:34:19] Christopher David: Okay.
[01:34:29] Christopher David: Those are not responses from the L_L_M_
[01:35:33] Christopher David: The actual LL responses are being handled in the open router service. I see the issue now. The problem is in mod. The open router s being received but not for it. Yeah, no shit.
[01:36:42] Christopher David: Complete raw response.
[01:36:46] Christopher David: Nope.
[01:39:00] Christopher David: Hey, we got some content, we're just not
[01:39:07] Christopher David: passing it through.
[01:39:41] Christopher David: Okay, we are finally logging the raw tokens from open router. Now I want you to pass them to the client and show them in a message. Now.
[01:41:29] Christopher David: Okay, now you are...
[01:41:33] Christopher David: sending to client Jason Blobs of the entire chunk and printing it all, but I just want the
[01:41:45] Christopher David: actual token aggregated properly.
[01:42:37] Christopher David: I think we're all of a sudden get stopping points.
[01:43:27] Christopher David: The title is very generic. It doesn't really tell me anything specific.
[01:43:30] Christopher David: It looks at something.
[01:43:34] Christopher David: Okay,
[01:43:35] Christopher David: that's great.
[01:43:37] Christopher David: But it puts each thing on its own line.
[01:43:42] Christopher David: I need them one after the other on the same line.
[01:43:57] Christopher David: And what did I say we were going to previously do for hard-coded?
[01:44:26] Christopher David: I thought I put it.
[01:44:23] Christopher David: put it somewhere here.
[01:45:19] Christopher David: Oh,
[01:45:19] Christopher David: the
[01:45:24] Christopher David: server does not stop just because you disconnect.
[01:46:54] Christopher David: Now it is not showing any of the thinking tokens at all.
[01:47:01] Christopher David: It only shows the final response tokens, all delivered in one blast,
[01:47:10] Christopher David: but still with one token per line. Fix it.
[01:47:18] Christopher David: I need everything streaming in.
[01:47:21] Christopher David: The same way, no.
[01:47:26] Christopher David: Not all not each token on serial
[01:48:01] Christopher David: Hello.
[01:49:40] Christopher David: I did that existing code? No.
[01:50:25] Christopher David: What ya doing?
[01:51:29] Christopher David: It is streaming thinking tokens,
[01:51:31] Christopher David: but still one on each line.
[01:52:13] Christopher David: try some other action.
[01:53:35] Christopher David: Oh, yeah.
[01:54:02] Christopher David: Kind of better because it...
[01:54:02] Christopher David: Shows the accumulated
[01:54:06] Christopher David: content, so I can read the thing. But it duplicates it showing it each time on its own line. Fix it.
[01:59:22] Christopher David: You know, thinking that the problem might actually be, are we giving each update its own
[01:59:30] Christopher David: uh updates?
[01:59:46] Christopher David: Still happening, but I think it may be because of how the client side code handles updates like maybe gives each its own
[01:59:59] Christopher David: ID or something.
[02:00:02] Christopher David: Take a look at this and see.
[02:00:43] Christopher David: Okay, yeah.
[02:00:45] Christopher David: Just didn't have good contacts across clients or...
[02:01:38] Christopher David: Just paste here a rewrite of the
[02:01:44] Christopher David: of socket handler.
[02:01:55] Christopher David: And I can paste it.
[02:02:32] Christopher David: Okay, let's see if that helps.
[02:02:36] Christopher David: Copy.
[02:02:39] Christopher David: Paste.
[02:04:23] Christopher David: Yay, progress,
[02:04:24] Christopher David: progress, progress, progress, progress.
[02:04:40] Christopher David: Oh, that's nice.
[02:04:47] Christopher David: Okay folks, I think that's a good stopping point for now. We have reasoning streaming to the client.
[02:04:55] Christopher David: You know, some stuff to clean up here, some of that I'll do offline.
[02:04:59] Christopher David: And then um in the next episode we'll get some actual improvement to the intelligence of the algorithm uh with looking at this all properly via the UI.
[02:05:10] Christopher David: Good night.