Building @sullyai - MTS, AI Research Prev/ Digital Twins & Persona Development Research, HCI, B2B Marketing, Communication Design

Toronto, Canada 🇨🇦
I’m excited to share a new repo: Agent Skills for Context Engineering Instead of just offering a library of black-box tools, it acts as a "Meta-Agent" knowledge base. It provides a standard set of skills, written in markdown and code, that you can feed to an agent so it understands how to manage its own cognitive resources. github.com/muratcankoylan/Ag… Most agent failures are not model failures; they are context failures. This is still an experimental project. The goal is to establish a platform-agnostic standard for context engineering that can be used in Cursor, Claude Code, Copilot or Codex. skills/ context-fundamentals: What context is, why it matters context-degradation: How context fails (lost-in-middle, poisoning) context-optimization: Compaction, masking, caching multi-agent-patterns: Orchestrator, swarm, hierarchical memory-systems: Vector RAG, knowledge graphs, Zep tool-design: Building tools agents can use evaluation: Testing and measuring agent systems I believe this is a good start, showing developers how to approach context engineering rather than relying on ready-made tools. You will also find the aggregated research documents I used to build these skills in the repo. The skills are synthesized from technical blogs on context and prompt engineering that I bookmarked, AI Labs' documentations, and Anthropic Skills examples. Try the 7 Skills, created using Antrhopic's Skills template format. Experiment with the provided scripts and references, and feel free to contribute to the repo.
It’s actually a good question; the difference is subtle but structural. I usually frame it like this: AGENTS[.]md acts as the declarative context. You write this for every repo (and nested directories) to define the project structure, persona, and coding rules. Skills are the functional protocols. They provide the agent with modular capabilities like advanced tool-use and multi-step chaining that are dynamically discovered only when needed. If AGENTS[.]md defines the identity and environment (the body), Skills provide the specialized toolset (the capabilities) used to execute tasks autonomously.
55
154
1,481
325,465
I believe cross-profession transfers like this still seem underexplored. This weekend we looked at how people building 3D animation engines for agents think about spatial layout and control, and brought that into AI filmmaking. By treating staging as a first-class planning step (a top-down map the agent builds and checks before generation), we got more consistent eyelines, screen direction, and lighting than we usually get from prompt-only workflows. Here for example the higher-quality result came from the transfer of another field's new technique and repo, not from pushing harder on existing AI filmmaking techniques. So with AI, borrowing how another profession already reasons about a shared problem can actually produce better results than staying inside your own field’s current practices.
Introducing Staging with ManimGX Video models don't keep track of where things are. A shot can look right and still put the actor on the wrong side of the frame, flip an eyeline, or move the key light between cuts. So I built a Skill that does the planning first: a top-down staging map of the scene. Here's an example of how I use this skill to generate a scene with Seedance 2.5.
4
15
1,313
Good post on how the process of creation is changing. This quote grasps it: “slowing down does lower your error rate, but mostly because you're doing less of everything. We'd rather get faster...”
Claude writes about 90% of Claude Code's code. From June to September, merged PRs more than doubled while the share reverted fell by more than 40%. We wrote about how we changed code review to get there, and how to adopt it: claude.dev/blog/solving-code…
1
5
1,488
Chat prompting and agent prompting need different techniques. In chat, you check every answer yourself. In a long agent run with sub-(agents & sessions), nobody checks until the end, so the prompt has to carry your judgment. That's why most of my agent prompts now are about what done means and what doesn't count. 1. Checks > role prompting Instead of "You are a senior reviewer," write the checks the work must pass. A role tells the agent how to think but a check tells it when it's finished. Every sentence should be a spec, a policy, or a gate. 2. Name how it can look done and not be. A PR can look done if the agent edited the test to match the bug. So the prompt asks for tests_pass and tests_unmodified together. Before you launch, ask smth like what's the best way to make this look done? Then add the check that catches it. 3. Write what does not count. A fix that only covers the happy path does not count. "Should work" without running it does not count. Agents want to finish the job, and everything you don't exclude is an exit they'll take. To build the list, imagine a junior engineer handing you each half-finished version. Everything you'd send back goes in the prompt. 4. Pair every "keep going" with a gate. An agent told "don't stop until it's fixed," with a loose definition of fixed, will fix the definition. The harder you push persistence, the tighter done has to be. 5. Status is not evidence. Agents report what they meant to do as if it happened. Every claim in the final report should point to proof: the command and its output, or the file it changed. And the proof has to come after the last edit. A green test run from before the final change proves nothing. The template in the screenshot is the skeleton from the skill. Four of its eight blocks are about done: TASK and DOES NOT COUNT define it, VERIFICATION checks it, and RETURN CONDITION decides when the agent is allowed to stop. Try it before your next long run and let me know how it performed.
Verification is one of the most important things for getting great results out of your agent. Clearly define "done" before code review starts. A reviewer, human or agent, asked to find bugs without this may still find something that could be improved. Give Claude checks it can run (bash commands, tests, clicking through the app in a browser) and have it pass that too before it says it's finished. When nothing blocks merge and ship.
4
2
37
2,573
Prompt is here. I also just updated the skill with new research, Sakana AI and UC Berkeley's MASS paper.
Jokes aside, it’s time to move away from this style of prompting. For anything that actually runs long hours, multiple context windows, parallel workers, or loops, you need long-horizon-prompting instead. The new style uses a pseudo-formal task brief: - Defines exactly what “done” looks like with clear, measurable success conditions - Explicitly lists what doesn’t count as a win (stops agents from gaming the result) - Adds an independent fresh-context reviewer that double-checks everything - Forces the agent to explore different approaches instead of endlessly tweaking the same idea - Sets strict rules for when to stop and what to actually deliver I just released the full prompting skill with references here: github.com/muratcankoylan/Ag…
3
293
We should no longer treat biological intelligence as a necessary precondition for knowledge creation. Historically, the rate of discovery was constrained by human cognitive capacity. AI is starting to break down that barrier. It should inspire huge optimism in us because the process of creating knowledge becomes computationally scalable so it’s no longer constrained by the intellectual capacity of our minds. This won’t bring us closer to exhausting what can be discovered. IMHO quite the opposite. We will explore new things with AI, and then they will open more doors, and then more and more; the answers will expand the questions, more unknowns… We’ll discover how little we’ve even begun to ask. The beginning of infinity.
i asked GPT 6 Pro and Fable 5.1 to rank all discoveries in the last three years 🔵 for Human discovered 🔴 for AI discovered (before October 6th) 🟢 for AI discovered from OpenAI/math repo 81% of them have been released today. wtf
4
9
1,227
This implies that same reasoning will apply to anything people claim is defensible to AI, like taste, tacit knowledge, or anything else. The human mind is now becoming a constraint in any field.
1
237
Muratcan Koylan retweeted
Wow this is such a cool skill for visualizing how CLMs work! 🤩 Thanks for making and sharing it!
New skill: self-managed-context (make the agent's context an editable file) It explains how to build agents that decide what to keep, update, or remove from the information they use to do their work. It can archive a long log while keeping the exact error, update its progress notes, or remove outdated information. Those edits then change what the model sees on its next turn. 1- Keep the system instructions and original task protected, outside the editable file. 2- Write the remaining conversation to a file, with labels for each message. 3- Let the agent edit that file using its usual code tools. 4- After each command, read the file back and use the updated messages for the next model call. Loading the skill (github.com/muratcankoylan/Ag…) alone into a fixed harness won't create live context editing, but it can help an agent build and then operate a harness that supports it. I gave the skill to a coding agent and had it build the harness itself. The task is a long stream of server logs that doesn't fit in the window. The agent reads it in 18 chunks, about 10k tokens in total, with a 5.5k budget. It has to report one incident ticket exactly and the final value of every config key. Same model & budget, three setups: 1- Model manages its own context 2- Harness forces a summary at 75% full 3- Keeps everything The video shows a real GPT-5.4 run. - Self-managed solved it 3 out of 3. - Keep-everything overflowed 3 out of 3. - Forced summary also solved it 3 out of 3. On GPT-5.4 the self-managed agent re-processed about 24% fewer prompt tokens than the forced summary. When it edited, it cut hard, so little was left after the edit to re-process (one edit took 5,537 tokens down to 771). On GPT-4.1 it saved nothing. It edited near the top of its context but kept most of what was below, and every edit forces everything after it to be re-processed. This is a small test at about 2x context pressure. The paper goes up to 24x, but imho the video below and the skill are a good way to start understanding the technique.
1
2
63
7,274
New skill: self-managed-context (make the agent's context an editable file) It explains how to build agents that decide what to keep, update, or remove from the information they use to do their work. It can archive a long log while keeping the exact error, update its progress notes, or remove outdated information. Those edits then change what the model sees on its next turn. 1- Keep the system instructions and original task protected, outside the editable file. 2- Write the remaining conversation to a file, with labels for each message. 3- Let the agent edit that file using its usual code tools. 4- After each command, read the file back and use the updated messages for the next model call. Loading the skill (github.com/muratcankoylan/Ag…) alone into a fixed harness won't create live context editing, but it can help an agent build and then operate a harness that supports it. I gave the skill to a coding agent and had it build the harness itself. The task is a long stream of server logs that doesn't fit in the window. The agent reads it in 18 chunks, about 10k tokens in total, with a 5.5k budget. It has to report one incident ticket exactly and the final value of every config key. Same model & budget, three setups: 1- Model manages its own context 2- Harness forces a summary at 75% full 3- Keeps everything The video shows a real GPT-5.4 run. - Self-managed solved it 3 out of 3. - Keep-everything overflowed 3 out of 3. - Forced summary also solved it 3 out of 3. On GPT-5.4 the self-managed agent re-processed about 24% fewer prompt tokens than the forced summary. When it edited, it cut hard, so little was left after the edit to re-process (one edit took 5,537 tokens down to 771). On GPT-4.1 it saved nothing. It edited near the top of its context but kept most of what was below, and every edit forces everything after it to be re-processed. This is a small test at about 2x context pressure. The paper goes up to 24x, but imho the video below and the skill are a good way to start understanding the technique.
‼️The Bitter Lesson for context management: Giving LMs unrestricted control over their context beats human-designed SOTA! Introducing 🩵Context Language Models (CLMs)🩵 - Natively manage their own context - Treat context as a file - Learn policies in CLM weights, no harness
8
9
116
15,715
I built this at the gym with Devin Mobile I’ve been pretty skeptical of coding agents on mobile. I just I don’t need my phone becoming another IDE. But yesterday I had the idea to share our Jev research. I told my agent to use our branding and pull in everything we’d done over the last few days and create an interface and a video. That 3-min work is now seen by 250k people, good win. Devin’s been really helpful for my our team. If you’re building a startup, here’s our referral link to apply for their startup program ($65,000 in credits) 👉 devin.ai/startups?ref=dfs-od…
We gave Jev 2,029 real phone calls. No transcripts or audio; it never heard a word. Our AI receptionist's calls were reduced to pure structure, meaning turns, tool calls, workflow stages and timing. During the calls, Jev made 38,012 turn-level forecasts at 118 ms median latency, reviewed every call with five typed questions and produced 10,145 answers in 26 seconds with 256 requests in flight. The experiment was zero-shot, with no fine-tuning or examples from our data. We compared Jev's forecasts with what actually happened in the EHR. By the halfway point, Jev could meaningfully separate calls that would book from those that wouldn't (AUC 0.78), and near the end it ranked them correctly 94% of the time. Even though Jev over-focused on visible errors our agent usually overcomes, it's still pretty incredible that it analyzed thousands of real calls in seconds for only $3.
7
3
22
3,670
We gave Jev 2,029 real phone calls. No transcripts or audio; it never heard a word. Our AI receptionist's calls were reduced to pure structure, meaning turns, tool calls, workflow stages and timing. During the calls, Jev made 38,012 turn-level forecasts at 118 ms median latency, reviewed every call with five typed questions and produced 10,145 answers in 26 seconds with 256 requests in flight. The experiment was zero-shot, with no fine-tuning or examples from our data. We compared Jev's forecasts with what actually happened in the EHR. By the halfway point, Jev could meaningfully separate calls that would book from those that wouldn't (AUC 0.78), and near the end it ranked them correctly 94% of the time. Even though Jev over-focused on visible errors our agent usually overcomes, it's still pretty incredible that it analyzed thousands of real calls in seconds for only $3.
102
134
2,140
373,646
Everything in the universe is in a hurry. The human moment shouldn't have to be. I used Claude Opus 5.5, as the main agent and Sonnet 5.5 as a team of film-production subagents, to turn what I do into a 30-second film. "let the machines hurry, so people can take their time." They decided to work on this concept, turned my day into an actual design problem: - Energy lives in what moves inside the frame and in the cut rhythm. - Calm lives in the camera, the light and a musical pulse that never changes tempo. Output was a 4500-character prompt and Seedance 2.5 in Runway one shotted this! Visual storytelling is becoming part of how I think, explain and connect. What really excites me is the things we can't imagine yet that better reasoning, voice and video models are about to make ordinary.
4
1
15
2,238
Besides reading research papers and spending time on X, one of the ways I keep up with AI is testing new models myself, not just LLMs but voice and video too. The @runwayml team kindly added me to their affiliate program, so you can use code "muratcan25" for 25% off any Runway plan. I genuinely like the setup where many models in one place to experiment with, and an agent interface that makes iterating fast.
464
Muratcan Koylan retweeted
What if a film studio were just a set of files? That's what we've been experimenting with, and we've just started making our first films in it with Opus 5.5 and Seedance 2.5. On a set, a scene's decisions are spread across a writer, director, designer, DP, sound designer and editor. A single prompt written by one person, or one model, collapses all of that into one voice. It usually ends up as a mood board in words: "cinematic, moody, 35mm." But what the model actually needs is a causal specification: - Who wants what? - What physically happens? - Where does the light come from? - What do we hear, and why? - Where does the cut fall? We are rebuilding the crew as prompts, letting them make the decisions, and compiling those decisions into the language of one specific model. The test brief here was this: Napoleon walks into a secondhand bazaar in Canada. The absurdity is played as completely normal. It's for a mock resale brand called Twice. An agent, Devin harness, running Opus 5.5, reads and writes the system. A producer prompt casts roles and integrates their work. And we keep creative authority as Director. Each role is filled by a persona: a ~2,000-word simulation of a real creator's publicly documented working method. It covers what they notice first, what they refuse, and when they break their own rules. A generic "you are a cinematographer" collapses to the average. A specific method disagrees, and it has to give a reason. For this brief, the producer cast 14 of them. They work through shared files: each one reads what the others decided, writes its own proposal, and challenges the rest in writing. "Been through a few winters, that one." A silence. "So have I." Everything is first written as a model-neutral spec, then compiled for Seedance 2.5. Persona names never reach the model. The camera stays static on purpose. It's one more person in the room who doesn't care. The video below is the very first output: one generation, straight from the prompt the system wrote from the brief. It still has small mistakes. But agentic video editors are getting better fast (if you know good ones, drop them below). Soon the agent won't just write the prompt; it will review what the video model returns for that scene and send it back for another pass. That's the next step is a video generation factory, automated and run by agents from brief to final cut. We're still experimenting with different orchestrator architectures and context systems. This is really exciting, and we can't wait to share more details soon.
1
1
4
967
It's actually weird feeling to watch recursive self-improvement start working in your own harness, and to finally see the results. With Opus 5.5 and GPT-6 Astra, our harness now improves itself and agents do almost every step of it. 1. Agents write the evals. They turn failing call traces into versioned scenarios: caller persona, goal, the tools that should run, and the final state expected in the EHR. 2. Agents call agents. Simulated callers are wired to phone our deployed receptionist in real rooms, with real tools and a sandbox EHR, in text and audio, across both of our runtimes. 3. Agents grade agents. An LLM judge plus deterministic end-state checks score each call, and failures are clustered by runtime, tool and check. Agents then write one fix and one new scenario per root cause as a stacked PR. 4. Agents review agents. Reviewer agents critique every PR, findings get fixed with tests, and scenarios are rerun. A change proposed only if it passes on both runtimes. We still own merge and deploy, for now. We're early, but for the first time the loop is starting to close. I've never experienced a pace like this. It's getting faster so RAPIDLY.
Our internal data shows Claude is accelerating AI development—a possible path to recursive self-improvement, or AI autonomously building a more capable successor. It’s happening faster than we thought, and the implications deserve greater attention. anthropic.com/institute/recu…
41
83
1,172
131,447
A self-improvement loop for multimodal generation is here. We gave Opus 5.5, running inside the Devin harness, a 12-second clip generated by Seedance 2.5 along with the prompt that produced it. It essentially debugged the prompt like code. Opus audited the clip frame by frame, found details we had missed, traced several failures back to contradictions or underspecified constraints in the prompt, rewrote it, generated another attempt, and evaluated the result again. Opus did not receive a continuous video stream. It built its own inspection harness in a shell: - Adaptive sampling. ffmpeg at 2 fps across the clip, then 4 fps around critical windows like the camera reveal and dialogue. It assembled contact sheets so frames seconds apart could be compared directly. - Hypothesize, then zoom. It formed a claim and verified it using magnified crops from specific timestamps. This is how it caught a delivery rider wearing one helmet while carrying another, in a blurry region roughly 100 px tall that we had missed. - Rule reconstruction. It explicitly reconstructed the scene's constraints: which direction each signal should face, which traffic phase permits each movement, who should be speaking, and so on. It then evaluated the video against those constraints rather than just asking whether the scene looked realistic. - Audio as a separate channel. It ran faster-whisper with word timestamps, measured loudness in 0.5 s windows, and compared those events against mouth crops to infer who was actually speaking. It then produced a PDF with annotated figures and severity labels, while separating direct observations, model inferences, and vendor claims. Some apparent "video model errors" turned out to be prompt errors. Finding those required reasoning about the internal logic of the scene, not just inspecting pixels. Opus also built its own evaluation harness with minimal instruction. On a fixed 11-criterion scorecard, the generation went from satisfying 2/11 criteria to 7/11 after the prompt revision. More interestingly, the eval made the remaining failure obvious. Explicit spatial constraints helped a lot. Temporal state changes were much harder. Once the scene layout was specified precisely, Seedance could usually render it. Binding a state transition at the right moment to the right object remained unreliable (I believe we need more context engineering and experiments here) We also ran the same task with GPT-6 Astra, and Opus 5.5 surfaced substantially more of the subtle inconsistencies and missing constraints.
LLMs are solving olympiad-level math, yet video models still fail at basic logic. I made this short clip with Seedance 2.5, and even as the creator I missed some of the errors. The video looks real, so your eye accepts it, but the absurd mistakes are still there. Below, I'll show how I tackled them using Opus 5.5 in Devin:
4
12
2,168
Muratcan Koylan retweeted
i don't think nearly anyone, myself included, has truly internalized there'll soon be a machine better than us in every single intellectual & physical capacity deep down we all share a feeling that our 'entrepreneurship' or 'taste' or... is special & safe. it isn't. it's over
695
491
7,684
1,267,872
Ata's hands-on experience on film sets, now shaping how he makes AI ads and movies. Go follow my cousin if you’re working in this space. He shares the creative decisions behind the work. He’s also here with me in Toronto for a while. If you’re around and want to collaborate, hit him up. And if you can help with video model credits, we’ve got plenty of ideas!
My AI films got better when I stopped turning every generated image into a video. Building a scene > animating a still Here's how I created this ad using Seedance 2.5 and Nano Banana Pro, from character design to final edit:
1
6
1,581
When I tried GPT-Live-1 today, I felt deflated as I recognized behaviors we’d spent weeks trying to make reliable. For the past three months, I’ve been focusing on researching and building duplex voice agents, where I wrote thousands of lines across our harness and the experiments around it. Customers use parts of that work every day, the conversions are increasing drastically as we make our voice agents more reliable and expressive. This duplex voice harness/model (interaction runtime + kernel) problem has occupied most of my attention but tbh when I first started working with voice agents, I didn't know how challenging and complex they were. Duplex conversational timing, orchestration, acoustic turn-taking, micro-interruptions, prosody, and generalized noise etc are really hard problems. There are so many 'beautifully crafted"'voice demos but seeing them in production is almost impossible. A cough would interrupt the voice agent, it leaves the caller waiting for it to speak again. During a tool call, someone would change their decision before the earlier result returned. There are also many other telephony factors so it is not just an AI or research problem. Following those cases through the system led us to separate the part that speaks from the work running in the background. We’ve developed a kernel that controls what the agent can do and checks what happened before it reports an outcome to the caller because the duplex models simply weren’t good enough yet. During this period, reading NVIDIA’s PersonaPlex and Nemotron VoiceChat work helped me understand where the models were heading; Thinking Machines’ Interaction Models approach to keeping an interaction going during longer tasks connected with questions we were already working through. My first thought was how much of what I’ve been working on will we no longer need? This is another great example of how harnesses are compressing into models. That's why always build your harness and repo that you can destroy every 6 months and build it from scratch again. It should be very fluid and modular, so you can easily bring the frontier capabilities. That's why building a duplex harness that happens to use ASR, STT, LLM, TTS models is not a good solution since duplex is commoditized today. Build a harness where the duplex model itself is a replaceable component. This is valid for any software field. After spending months with these problems, I appreciate the work behind GPT-Live more deeply. Through client delegation, anyone can connect GPT-Live to existing harnesses, where the models you choose work with your tools. Thank you to the OpenAI team. This is a big win for anyone building solutions to benefit humanity.
GPT-Live-1 is now available in the API. Bring ChatGPT’s natural back-and-forth to your app, with voice agents that listen while they speak and work with the models and harness you choose.
37
18
436
64,160
Muratcan Koylan retweeted
The world of R&D is forking into two paths: the token-abundant research, and the token-starved research. The future is in the former - evidentially, the progress by today's top AI industry teams and neolabs is breathtaking, where researchers’ human brilliance is super charged by AI’s assistance. Every research university president should be reading this report and reflecting on what the future of higher education research should be. openai.com/index/research-ac…
83
410
2,623
335,252
Muratcan Koylan retweeted
Getting ready to publish my complete guide to RL for LLMs tomorrow morning. Although the post contains many of my own thoughts / learnings, it is also a synthesis of so many great resources that have been published over the years: - The RLHF Book (rlhfbook.com/) by @natolambert - Reinforcement Learning by Richard S. Sutton and Andrew G. Barto - Spinning Up in Deep RL (spinningup.openai.com/en/lat…) from OpenAI - Build an LLM (sebastianraschka.com/llms-fr…) and Reasoning Model (sebastianraschka.com/reasoni…) from Scratch by @rasbt - Various notes (joschu.net/blog/kl-approx.ht…) and papers (TRPO, PPO, etc.) from John Schulman - Policy Gradient Algorithms (lilianweng.github.io/posts/2…) by Lilian Weng - A Vision Researcher’s Guide to RL (yugeten.github.io/posts/2025…) by @YugeTen - From REINFORCE to Dr. GRPO (lancelqf.github.io/note/llm_…) by @qingfeng_lan - Async GRPO in the Wild (yumoxu.notion.site/async-grp…) by @yumo_xu - Open RL infrastructure like TRL (huggingface.co/docs/trl/en/i…) and OpenInstruct (github.com/allenai/open-inst…) I highly recommend reading all of them. They’ve truly helped me to learn so much.
23
188
1,400
78,870