Skip to content

Latest commit

 

History

History
15 lines (8 loc) · 4.46 KB

origins.md

File metadata and controls

15 lines (8 loc) · 4.46 KB

Origins of Copilot Workspace

At GitHub Next we work in phases: ideation, build, ship, learn. Every phase is about learning.

In May 2023, after launching Copilot-X, our ideation around the SpecLang project led to new explorations of how to incorporate natural language — and user edits to natural language — into the development process, with a focus on “the whole repository”.

SpecLang is conceptualized as a compiler for natural language: specs are permanent, and code ephemeral. But what would happen when specs are updated — is the compilation function stable enough? That led us to ask: what if instead code is permanent, and specs ephemeral? Can the user then change the spec, and see the inferred changes to the code, then throw the spec away? This led to a new ideation: Extract, Edit, Apply — EEA. We would use AI models to extract a specification from existing code, the user would indicate the desired change by editing, and the AI would help apply that change. This core concept has proved both fascinating and grounding as we iterated on it — “SpecLang had a code-first baby” was our tagline.

Another core concept of Copilot Workspace is the all-important “Co” in "Copilot" — the core idea that the human and the AI take a journey together — a continual pas de deux where the human indicates an intention and the AI makes an offering and the human checks and corrects that offering, or ignores it, and the cycle continues. This is a core challenge in task-oriented workflows. Among all the talk of “agents”, this need to design for this repeated AI-human divergence and alignment can be lost. If the AI is going to take steps towards a solution, it must “take the human with it”, and allow review, steering and control at every step of the way. Put differently, if agents are to be human-assistive, they must be “co-agents”. This requires close attention to user experience, and also requires top-rate user experience developers. We don't say we've fully cracked it — but the design principle has been there with us from the start.

From June 2023 to GitHub Universe in November 2023 and through to technical preview in April 2024, the EEA ideation merged with many practical themes to become Copilot Workspace. We began to focus on GitHub issues and tasks as the source of change intent. We looked at validation and the possibilities to incorporate AI-assisted build and validation cycles. We did user studies and learned more about the many ways we could support iteration after initial code generation. We looked at extensibility and “developer flow” integration into GitHub.com. We experimented with AI inference for working out what files — and what parts of files — to change. We integrated a terminal and file synchronizer for practical validation. We redesigned in Primer to align with GitHub. We started to learn about the joy of natural language programming on mobile devices — drafting issues on-the-go, then “Open in Workspace” and save the results for later. We iterated on conceptual models of the development process, doing interviews with developers to help understand how they experience and use Chat-based AI in their work today, and what scenarios they welcome yet more AI assistance with. We talked widely and openly about the project in GitHub and Microsoft, and were plain, open and honest about our methodology and status, and started to work with partner teams. We began to understand more of the social role of AI-assisted tooling including sharing “sessions” — early drafts of possible code changes. We also learned how Copilot Workspace helps as much when the developer is unfamiliar with a codebase as familiar. We dug through logs to identify faulty GPU clusters or 502s. We worked hard, very hard, on the user experience. And we used the tool ourselves — so-called “dogfooding” — a lot, every day.

We're excited to continue this development and to take the journey through technical preview, always with the aim to learn more, every single day.

The GitHub Next Team