Brains are not enough.
Shadi Sharaf
Astronaut
Frontbar - Christmas edition
https://slides.com/shadisharaf
Step 0
aka
An agent is an LLM model, who can do more than just talk, it can use tools to retrieve information and execute actions.
MCP (model context protocol) is the protocol for tool calling, MCP servers are tools exposed to Agents to use. Tools are simple functions.
Agent: "I need to request JIRA issue number: ZD-101"
Client/IDE: "Sure. [calls jira_mcp.fetch_jira_ticket(ZD-101)]
MCP: "jira_mcp.fetch_ticket = fn(ref) => fetch(jira.com/issues/zd-101)"
Client/IDE: "Here you go: [result]"
Context is what information the agent has at once point of time, aka the conversation.
Context is everything you have in your open chat, plus any rules the agent has at any point of time.
Good context = good output
Too much context = Attention loss / Hallucination
Set of reusable / composable instructions to carry out
a series of actions autonomously.
/jira
- Fetch the reference JIRA ticket and all its dependencies
- Cache it in .ai/jira/{ticket}-{date}.md
/jira-plan
- Ask busboy agent to `/jira {ticket}`
- Ask architect agent to `plan {ticket}`
An MCP server to keep.. memories. Save, update, and recall them as needed, based on context.
OR a simple folder on your project, aka Documentation.
You: Next time, do not add priority 10 to WordPress hook registration unless you need to change the number of arguments passed to the function.
Agent: Sure. {tool_call create_memory("...")}
Client: "memory.create_memory("...")"
MCP: "create_memory = fn(memory) => backend.add("..")"
Agent: Memory updated.
Step 1
aka
- Thinker
- Asks questions
- Detail oriented
- Writes comprehensive plans
- Searches online for solutions to a problem
- Explores documentations and resources
- Compiles research reports and recommendations
- Sticks to standards
- Sticks to plans
- Updates documentation, writes inline docs
- Commits to DRY, YANI, KISS techniques
- Writes small, testable functions
- Uses Gherkin syntax to write QA steps
- Uses playwright / browser to run QA steps
- Attentive to details
- Thinks about edge cases
- Does not update code
- Happy with writing failing tests to pass it back to engineers
- Dives into the code, examine relationships, traces code execution paths
- Uncovers possible bugs, unhandled exceptions, probable edge cases
- Compiles comprehensive reports, with recommendations
Short answer: Context, and speciality.
Step 2
aka
Reads and writes to file system
Uses the terminal to execute commands.
Semantic and lexical memory store
Reads JIRA tickets, comments, meta information.
Updates tickets as requested.
Fetches updated documentation for any library
(from a dedicated database)
Researches topics online and provides detailed reports.
Uses playwright to control your browser and browse through pages
Clicking and typing to get a job done / test workflows.
Spins separate agents with separate contexts to run specific actions.
Asks Google NotebookLM questions, returns with their answer.
Reads / creates time entries.
Reads Figma designs.
Short answer: No. There is a limit to how many you can expose at one time, before the agent ignores them.
Also: Context.
Step 3
aka
Read JIRA tickets, comments, meta information.
Plan user stories, system design, and implementation documents.
Commits using conventional commits
Writes detailed PR description based on changes.
Pushes the branch.
Create the PR using PR template.
Checks GitHub PR feedback.
Plans fixing plans for high-certainty tasks.
Asks questions about unclear tasks.
Writes clear dev notes based on ticket AC.
Reads code and understands patterns.
Writes clear QA notes based on ticket AC / Dev notes.
Writes in Gherkin / EARS format.
aka
Global behavior for ALL agents and workflows
Non-domain specific
Project-context
Generic behavior patterns (not a workflow)
Specific domain (Frontend/Backend/Research)
Specific model (think speed and cost)
Workflows, set of chained actions
Repetitive tasks
- Global behavior / all agents / project context: AGENTS.md
- Domain-specific rule: Agent
- Workflow / set of actions: Command
- Project/Feature/Folder specific rule: nested AGENTS.md
aka
Okay, what's next?
Couple of hours today
saves
Couple of hours everyday
🧵 Agent: Coder
🧵Command: Planner
🧵Model review: Composer