{"id":279,"date":"2026-07-23T14:55:52","date_gmt":"2026-07-23T14:55:52","guid":{"rendered":"https:\/\/sethdeegan.com\/?page_id=279"},"modified":"2026-07-23T15:33:43","modified_gmt":"2026-07-23T15:33:43","slug":"a-future-collaborative-work-platform","status":"publish","type":"page","link":"https:\/\/sethdeegan.com\/?page_id=279","title":{"rendered":"A future collaborative work platform"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Like <a href=\"https:\/\/github.com\/block\/buzz\">Buzz<\/a>, a collection of group chats with an agent in each.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For each group chat there are agents (preferably one master one) and humans.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The core idea is to make the agent behave like a human does in both text and voice chat, and enable voice chat in that channel with natural conversation and transcription to the chat channel at any time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Implementation details<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The agent(s) is running 24\/7. It behaves like your fellow coworker. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If it recognizes when it could provide something in the text chat, it will interject. <\/li>\n\n\n\n<li>If you ask it explicitly to do something, it will respond. <\/li>\n\n\n\n<li>If you tell it to stop doing what it\u2019s currently doing, it will stop. <\/li>\n\n\n\n<li>If the agent is in the process of responding to you, you will see a \u201ctyping\u201d indicator. If it sees that you are \u201ctyping\u201d, it will be respectful and hold off to wait for your response. This allows you to interject smoothly. <\/li>\n\n\n\n<li>The agent will be tuned to send short, chunked text messages to the chat. It will <strong>not<\/strong> stream text in realtime like current agents do. That way you prevent the situation where streamed text overlaps with human sent text, which can lead to cognitive overload. Instead, the chunked message-after-message flow of a normal text chat remains. <\/li>\n\n\n\n<li>If the agent has a longer response, it will send multiple chunked messages. <\/li>\n\n\n\n<li>The agent will send messages \/ run at the speed of human reading. It does not need to run faster (prevents message spam). The agent of course in the background can do a lot more (thinking, tool calls, etc.), but it will be tuned to still send messages at a normal human reading rate. Codex is tuned to do this right now by providing consistent updates what it is working on, and it works very well.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Voice<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, you can talk to the agent in the channel in realtime using your voice. There will be a parallel voice channel for every text channel. Your voice and the others in the channel will be transcribed into text messages and show up in the text chat. That allows your coworkers to see what you are chatting about in voice, without requiring them to join the voice channel themselves (say they\u2019re busy). Your human coworkers can join the voice chat too and you can discuss among yourselves with the agent. This allows you to conduct meetings in the channel and communicate faster via voice (vs text which is slower), and still have every conversation recorded and linearly tracked in the text channel as well.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Orchestration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The master agent acts as a master agent orchestrator. Say you want it to analyze data in your database, it will spin up a subagent to do that. Say you want to make an app and compare how 2 models make the app. It will spin up those 2 subagents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The master agent&#8217;s model of course can be swapped at any time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Organizational awareness<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The agent should have awareness what&#8217;s going on in all chats and the organization as a whole. All chats, data, will be embededd and indexable. When people in a chat are talking about about a topic, the agent in the background will see if anyone in the past has talked about that topic. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This releases the burden of requiring the user to share everything company wide. Information awareness propogates instantly with the agent acting as the propogator<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Threads<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TODO this section is a bit undecided. threads vs chats is complicated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In any chat platform, the user just cares about who they are talking to (the people in the channel). They shouldn&#8217;t be frustrated by a channel being chat or thread structured only, and they should be able to easily share context and bring people into the topic without sharing everything.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The platform will have chat (message after message) and thread mode for each channel, however each will just be a viewing mode. In reality, everything&#8217;s a chat in the backend, and people will just manually reply (when the user clicks reply to a message) or the platform will auto-detect when a user is responding about a previous message\/topic in that channel and incorporate it into a thread (AI can do this). Users can conveniently switch between chat or thread viewing at any time so that they can see what is most recently been talked about (chat mode), or go back to a previous topic and view or respond it easily. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If users want to add a user to a thread, to share with them what was discussed, they can. Threads can be made into &#8220;channels&#8221; just by staring them and this puts them on the sidebar. This turns that thread into a new channel. Threads\/channels kind of act synonymous, and they can be nested multiple levels deep<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Technical implementation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We would use a realtime agent\/model like <a href=\"https:\/\/openai.com\/index\/introducing-gpt-live\/\">GPT Live<\/a> or <a href=\"https:\/\/thinkingmachines.ai\/blog\/interaction-models\">Thinking Machine&#8217;s Interaction Model<\/a>. A model with greater capabilities\/tuning might be required to be able to correctly respond to both text and voice and manage who&#8217;s speaking. <a href=\"https:\/\/chatgpt.com\/share\/6a622c58-4b40-83ea-a61f-da5a7008278c\">Running a model 24\/7 is quite costly too<\/a>. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Like Buzz, a collection of group chats with an agent in each. For each group chat there are agents (preferably one master one) and humans. The core idea is to make the agent behave like a human does in both text and voice chat, and enable voice chat in that channel with natural conversation and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-279","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sethdeegan.com\/index.php?rest_route=\/wp\/v2\/pages\/279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sethdeegan.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sethdeegan.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sethdeegan.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sethdeegan.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=279"}],"version-history":[{"count":8,"href":"https:\/\/sethdeegan.com\/index.php?rest_route=\/wp\/v2\/pages\/279\/revisions"}],"predecessor-version":[{"id":290,"href":"https:\/\/sethdeegan.com\/index.php?rest_route=\/wp\/v2\/pages\/279\/revisions\/290"}],"wp:attachment":[{"href":"https:\/\/sethdeegan.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}