Generative AI & agentic solutions · 30–35%
Multi-agent: workflows, Agent Framework, A2A
Foundry workflows (visual designer)
A workflow is a declarative orchestration you draw on a canvas: connected nodes that invoke agents, branch on conditions, loop, and pause for humans — instead of you coding the coordination.
Node types:
| Node | Does |
|---|---|
| Invoke agent | Runs an agent; its structured JSON output can be stored in variables |
| Flow | If/Else, Go To, For Each (loop lists — e.g. many tickets) |
| Data transformation | Set/Reset Variable, Parse value |
| Basic chat | Message user / collect input (human-in-the-loop) |
| End | Finish, optional result |
- Patterns: sequential, human-in-the-loop (pause for approval/input), group chat (dynamic control shifts).
- Power Fx is Microsoft’s low-code, Excel-like formula language; workflows use it wherever a value or condition is computed:
Local.Confidence > 0.8,If(...),ForAll(...),IsBlank(...). System variables describe the conversation; local variables hold your data. - Saved workflows version automatically (immutable versions); visual ↔ YAML stay in sync.
- Invoke from code:
openai_client.responses.create(conversation=..., extra_body={"agent": {"name": wf_name, "type": "agent_reference"}}).
Microsoft Agent Framework
The Microsoft Agent Framework is an open-source SDK for writing agents and multi-agent orchestrations in code — the next generation of Semantic Kernel + AutoGen, built by the same teams. Unified Agent base class, sessions, function tools (auto schema from type hints or @tool decorator), MCP clients, middleware, telemetry, graph workflows.
- Foundry Agent Service = recommended provider — supports service-side chat history (state persists across restarts/scale-out). Azure OpenAI/OpenAI Responses also do; ChatCompletion providers don’t (local history only).
approval_modeon@tool= human confirmation before risky calls.- Agent-as-tool: wrap an agent as a function tool of another agent, so it can delegate work to specialists.
- Workflow internals: executors (workers) + edges (direct, conditional, switch-case, fan-out, fan-in) + events (
WorkflowOutputEvent,ExecutorInvokeEvent…). Checkpointing = save/resume state.
The 5 orchestration patterns — memorize
| Pattern | Shape | Use when | Builder |
|---|---|---|---|
| Concurrent | All agents same task in parallel | Brainstorm, ensemble, voting; independent subtasks | ConcurrentBuilder |
| Sequential | Pipeline: each output feeds the next agent | Fixed ordered steps, progressive refinement | SequentialBuilder |
| Handoff | Full control transfers dynamically | Right expert unknown upfront; escalation/routing | switch-case workflow |
| Group chat | Shared conversation, manager picks speaker | Debate, maker-checker loops, human oversight (≤3 agents ideal) | GroupChatBuilder |
| Magentic | Manager plans/delegates/adapts + task ledger | Open-ended, no predetermined path, documented plan | MagenticBuilder |
A2A (Agent-to-Agent protocol)
A2A is a standardized protocol that lets agents from different vendors and platforms discover each other and communicate — publish what you can do, receive delegated tasks.
- Agent Skill — one capability: id, name, description, tags, examples, I/O modes.
- Agent Card — “digital business card”: identity, endpoint URL, capabilities (streaming/push), skills, auth. Served at
/.well-known/agent-card.json. - Agent Executor — implements
execute(+ optionalcancel); uses RequestContext + EventQueue. - Server = Agent Card + request handler (+ Task Store) + ASGI app (Starlette/Uvicorn).
- vs MCP: A2A = agent↔agent (each with own LLM, built-in auth); MCP = agent↔tools.