Releases: microsoft/agent-framework
Releases · microsoft/agent-framework
Release list
python-github-copilot-1.0.0
[github-copilot-1.0.0] - 2026-07-23
Added
- agent-framework-github-copilot: Forward input attachments (images, documents, and other inline binary content) to GitHub Copilot as inline blobs (#7300)
Changed
- agent-framework-github-copilot: Promote the package from release candidate to stable
python-1.12.1
[1.12.1] - 2026-07-22
Added
- agent-framework-openai: Add explicit prompt cache breakpoints for GPT-5.6 models and a usage sample (#7163)
Changed
- agent-framework-ag-ui: Promote the package from release candidate to stable
- agent-framework-core: Add security guidance for custom MCP Streamable HTTP clients (#7245)
Fixed
- agent-framework-gemini: Preserve Gemini 3 thought signatures across function-call replays (#7095)
- agent-framework-core, agent-framework-foundry, agent-framework-foundry-hosting, agent-framework-openai: Fix stateless replay of reasoning-paired tool calls (#7233)
Full Changelog: python-1.12.0...python-1.12.1
python-hosting-a2a-1.0.0a260723
dotnet-1.15.0
What's Changed
- Python: Add MCPStreamableHTTPTool security guidance for custom http client by @TaoChenOSU in #7245
- Harden workflow credential selection by @moonbox3 in #7249
- Python: preserve Gemini 3 thought_signature across function-call replays by @giles17 in #7095
- .NET: [BREAKING] Hosting OpenAI Responses protocol helpers and optional execution state by @rogerbarreto in #7000
- .NET: Fix declarative autosend output by @alliscode in #7217
- .NET: Updating dotnet version for release. by @alliscode in #7265
- .NET: Added GettingStarted example demonstrating Dapr as an agent provider by @WhitWaldo in #1615
- Python: Support prompt cache breakpoints for GPT-5.6 models in OpenAI clients by @Mordris in #7163
- .NET: Fix expensive logging by @alliscode in #7268
- Python: Fix stateless replay of reasoning-paired tool calls by @moonbox3 in #7233
- Reduce workflow credential exposure by @moonbox3 in #7270
New Contributors
- @WhitWaldo made their first contribution in #1615
- @Mordris made their first contribution in #7163
Full Changelog: python-1.12.0...dotnet-1.15.0
python-1.12.0
[1.12.0] - 2026-07-21
Added
- agent-framework-azure-cosmos-memory: Add an alpha Azure Cosmos DB semantic-memory context provider with fact extraction, user profiles, samples, and integration coverage (#6719)
- agent-framework-azurefunctions, agent-framework-core, agent-framework-durabletask: Add HITL response-URL addressing for requests raised from inside workflows (#7001)
- agent-framework-core: Add cross-session origin attribution to context-injected messages (#7041)
- agent-framework-core, agent-framework-tools: Warn when auto-approved tools have name collisions (#7090)
- agent-framework-core: Add a
session_provideroption toMCPSkillsSourceandMCPSkill(mutually exclusive withclient) that resolves the MCP session on every fetch, keeping cached skills reconnect-safe when the underlying session is replaced (#7135) - agent-framework-hosting-a2a: Add app-owned A2A hosting helpers (#7050)
- agent-framework-hosting-mcp: Add app-owned MCP hosting helpers for exposing agents and workflows as native MCP tools (#7209)
- agent-framework-hosting-responses: [BREAKING] Add Responses conversation ID creation and parsing helpers, and distinguish conversation IDs from previous response IDs (#7234)
- agent-framework-hosting-telegram: Add Telegram hosting helpers and samples (#7047)
- samples: Add a Microsoft OpenTelemetry Distro observability sample (#5632)
Changed
- agent-framework-ag-ui: [BREAKING] Emit
TOOL_CALLevents for workflow participant tool calls (#7039) - agent-framework-a2a: Reduce
A2AExecutorlog noise for content types without protocol mappings (#7034) - agent-framework-ag-ui, agent-framework-core: Optimize shared serialization paths (#7165)
- agent-framework-ag-ui, agent-framework-bedrock, agent-framework-claude, agent-framework-core, agent-framework-github-copilot, agent-framework-ollama, agent-framework-openai: Normalize chat finish reasons across providers (#7105)
- agent-framework-anthropic, agent-framework-azure-contentunderstanding, agent-framework-azure-cosmos, agent-framework-core, agent-framework-declarative, agent-framework-devui, agent-framework-foundry, agent-framework: Update Microsoft Foundry branding in shipped APIs and package documentation (#6999)
- agent-framework-azure-contentunderstanding, agent-framework-azure-cosmos-memory, agent-framework-chatkit, agent-framework-core, agent-framework-durabletask, agent-framework-foundry, agent-framework-foundry-hosting, agent-framework-gemini, agent-framework-hyperlight, agent-framework-lab, agent-framework-monty, agent-framework-openai, agent-framework-tools, agent-framework: Consolidate dependency updates and compatibility adjustments (#7204)
- agent-framework-azurefunctions, agent-framework-devui, agent-framework-foundry, agent-framework-hosting-responses, agent-framework-lab, agent-framework-mistral, agent-framework: Clean up dependency groups and compatibility handling (#7046)
- agent-framework-azurefunctions, agent-framework-durabletask: Normalize initial durable workflow inputs across hosting paths (#7205)
- agent-framework-core: [BREAKING — experimental] Correct harness before-strategy compaction when state persists per service call (#7055)
- agent-framework-core: [BREAKING] Graduate
create_harness_agentfrom experimental to stable (#7120) - agent-framework-core: Graduate the mode and todo providers from experimental to stable (#7053)
- agent-framework-core: Graduate
ToolApprovalMiddlewarefrom experimental to stable (#7106) - agent-framework-core: Graduate
FileMemoryProviderfrom experimental to stable (#7113) - agent-framework-core: Make
FileAccessProvideropt-in for harness agents (#7094) - agent-framework-core: Serialize tool definitions best-effort for observability (#7029)
- agent-framework-declarative: Promote declarative workflows from release candidate to stable (#7065)
- agent-framework-devui: Refine request logging (#7083)
- agent-framework-foundry-hosting: Promote the package to beta and add it to the main installation surface; make the Foundry Toolbox MCP skills sample self-contained (#7099)
- agent-framework-azure-contentunderstanding, agent-framework-gemini, agent-framework-mistral, agent-framework-monty, agent-framework-tools: Promote the packages to beta, add them to the main installation surface, expose lazy-loading namespaces, and move package-local samples into the root sample tree
- agent-framework-github-copilot: Forward
GitHubCopilotOptionsverbatim when creating sessions (#7155) - docs: Add self-hosting sample snippets (#7104)
- docs: Add environment-file templates for Durable Task hosting samples (#5948)
- samples: Keep ChatKit attachments close to the sample application that owns them (#7038)
Fixed
- agent-framework-ag-ui: Bind streamed tool arguments to their call ids (#6342)
- agent-framework-ag-ui: Accept state data URIs whose media type includes parameters (#6905)
- agent-framework-ag-ui: Coalesce reasoning deltas without content ids into a single reasoning block (#6804)
- agent-framework-ag-ui: Bridge request state and session continuity (#7084)
- agent-framework-ag-ui: Replay workflow handoff results correctly (#7102)
- agent-framework-ag-ui: Clarify
require_confirmationdocumentation forconfirm_changesHITL gating (#6884) - agent-framework-anthropic: Prevent per-run
additional_beta_flagsfrom leaking into request keyword arguments (#7060) - agent-framework-core: Clear
service_session_idin the agent wrapper when session propagation is enabled (#5875) - agent-framework-core: Preserve tool span context for parallel calls (#6512)
- agent-framework-core: Parse structured values assembled from split text chunks (#6990)
- agent-framework-core: Raise
ValueErrorfor malformed data URIs (#6916) - agent-framework-core: Preserve function-call names when merging streaming deltas (#6809)
- agent-framework-core, agent-framework-durabletask: Handle checkpoint encodings consistently (#6579)
- agent-framework-core: Preserve explicit null arguments during automatic function calling (#7108)
- agent-framework-core: Count non-ASCII text correctly during compaction (#7124)
- agent-framework-core: Forward
header_providerheaders to streamable HTTP MCP transports (#7218) - agent-framework-core: Prevent compaction from emitting empty projections (#7219)
- agent-framework-core: Return MCP tool-use sampling results to the requesting server (#7189)
- agent-framework-foundry-hosting: Make
FoundryToolbox.as_skills_provider()cache toolbox skill discovery by default soskill://index.jsonis read once instead of on every agent run, givedisable_cachingan observable effect, and add acache_refresh_intervalo...
dotnet-1.14.0
What's Changed
- .NET: Fix CosmosChatHistoryProvider: omit ttl when MessageTtlSeconds is nul… by @TheovanKraay in #7030
- .NET: Fix CompactionMessageIndex.IsSummaryMessage by @pwoosam in #7042
- .NET: Fix workflow session bug by @peibekwe in #7032
- .NET: Enable Valkey NuGet package publishing by @westey-m with @Copilot in #7059
- .NET: [BREAKING] Graduate message injection out of experimental by @westey-m in #7044
- .NET: [BREAKING] Graduate todo and agent mode providers out of experimental by @westey-m in #7052
- Update issue triage by @moonbox3 in #7098
- .NET: Add name collision warnings for auto-approvals by @westey-m in #7089
- .NET: Update Microsoft Foundry branding by @nicholasdbrady in #6999
- .NET: [BREAKING] Harness: Switch FileAccess to opt-in by @westey-m in #7093
- fix typos in XML doc comments, ADR docs, and test comments by @rinceyuan in #7085
- .NET: [BREAKING] Graduate ToolApprovalAgent and add ToolAutoApprovalRuleContext by @westey-m in #7107
- Harden manual integration test trust boundary by @moonbox3 in #7081
- CI: resolve PR author in community team check by @rogerbarreto in #7129
- Fix message ordering in workflow-hosted agents by @peibekwe in #7123
- .NET: [BREAKING] Graduate FileMemoryProvider by @westey-m in #7114
- .NET: Preserve UTF-8 order in HeadTailBuffer by @jstar0 in #7128
- .NET: [Feature]: .NET Improve ChatClientAgentSession constructor by @feiyun0112 in #7142
- .NET: Fix LocalCodeAct validation and package checks by @eavanvalkenburg in #7138
- samples: add AgentMemory (Neo4j-agent memory reimplemented in NET ) shopping assistant sample by @joslat in #7096
- .NET: Honor terminal workflow outputs in Workflow.AsAIAgent responses by @ssccinng in #6212
- .NET: Refactor Workflows MessageMerger to preserve message order and structure by @marcominerva in #6826
- .NET: Populate AgentResponse metadata in CopilotStudioAgent by @anneheartrecord in #6791
- .NET: [BREAKING] Bind tool-approval responses to surfaced approval requests by @rogerbarreto in #7111
- .NET: [BREAKING] Graduate HarnessAgent by @westey-m in #7119
- .NET: Version bump for .net release by @westey-m in #7237
- .NET: Cover source-type-agnostic toolbox consent parsing (a2a_preview) by @rogerbarreto in #7229
- [BREAKING] Python: add Responses conversation ID helper by @eavanvalkenburg in #7234
- The legacy .NET package Microsoft.Agents.AI.AGUI has been split into external AG-UI SDK packages: AGUI.Client, AGUI.Server, AGUI.Abstractions, AGUI.Protobuf (optional transport), and AGUI.Formatting. The ASP.NET Core hosting integration remains in this repository as Microsoft.Agents.AI.Hosting.AGUI.AspNetCore, now layered on top of AGUI.Server. If you are upgrading, replace Microsoft.Agents.AI.AGUI with the relevant AGUI.* packages and rename AddAGUI()/MapAGUI() to AddAGUIServer()/MapAGUIServer().
Full Changelog: python-1.11.0...dotnet-1.14.0
python-1.11.0
[1.11.0] - 2026-07-09
Added
- agent-framework-core: Add message injection middleware so tools or host code can enqueue messages into an active run and drain them into the next model call within the same
AgentSession(#6998) - agent-framework-core: Integrate message injection into
create_harness_agentand the harness console sample so a running harness agent can be nudged mid-turn (#7027) - agent-framework-core: Add progressive MCP disclosure so agents can discover, load, and unload MCP tool schemas on demand while keeping the
allowed_toolsboundary intact (#6850) - agent-framework-core: Add
refresh_interval(TTL) toCachingSkillsSourceso cached skill lists expire and re-fetch on a configured interval (#6977) - agent-framework-core, agent-framework-foundry-hosting: Add
SkillsSourceContext(invoking agent plus optional session) threaded through the skills source pipeline, enabling context-aware filtering and per-key cache isolation (#6895) - agent-framework-core: Allow disabling approval for
SkillsProvidertools (#6867) - agent-framework-core: Allow opting out of
FileAccessProvidertool approval (#6879) - agent-framework-core: Allow custom argument parsing for inline skill scripts so non-conforming tool-call argument shapes (for example, vLLM) can be handled (#6817)
- agent-framework-hosting, agent-framework-hosting-responses: Add a hosting protocol helper surface (
AgentState,WorkflowState,SessionStore,AgentRunArgs,WorkflowRunArgs) and Responses helpers (create_response_id,responses_session_id,responses_to_run,responses_from_run,responses_from_streaming_run) (#6891) - agent-framework-ag-ui: Add FastAPI SSE keepalive support for long, output-silent streams (#6980)
- agent-framework-github-copilot: Forward
skill_directoriesanddisabled_skillsto the Copilot session (#6937) - agent-framework-openai: Allow
tool_choice: requiredwhenallowed_toolsis set (#7024) - agent-framework-anthropic, agent-framework-core, agent-framework-foundry-hosting, agent-framework-gemini, agent-framework-openai: Mark hosted/provider-executed tool calls as informational-only via
Content.informational_onlyso they remain visible in transcripts without local re-invocation (#6997) - samples: Add a deterministic action-boundary validation middleware sample (#6528)
- samples: Add Agent Harness blog post accompanying samples, part 3 (#6741)
- samples: Add a declarative Foundry Hosted Agent workflow sample (#6897)
Changed
- agent-framework-core: [BREAKING — experimental] Extract caching from
SkillsProviderinto aCachingSkillsSourcedecorator (#6847) - agent-framework-core: [BREAKING — experimental] Treat nested
SKILL.mdcontent as part of the parent skill instead of discovering it as a separate skill root (#6849) - agent-framework-core: [BREAKING — experimental]
FileAccess/FileMemoryreplace_linesnow performs literal replacement (including line deletion) instead of always re-adding a line terminator (#6859) - agent-framework-core: Remove the experimental marker from the Skills API now that its surface is stable (#6974)
- agent-framework-core: Lazy-load root
agent_frameworkexports to reduce import cost for narrow-surface scenarios (#6962) - agent-framework-a2a, agent-framework-claude, agent-framework-copilotstudio, agent-framework-core, agent-framework-durabletask, agent-framework-github-copilot, agent-framework-purview: Implement ADR-0029
service_session_idlifecycle mapping, separating durable continuation state, per-run identity forwarding, and telemetry conversation-id extraction (#6724) - agent-framework-azurefunctions, agent-framework-core, agent-framework-durabletask: [BREAKING] Support multi-workflow hosting and sub-workflows on the Durable Task host, including per-workflow durable naming and nested human-in-the-loop request routing (#6696)
- agent-framework-ag-ui: [BREAKING] Canonicalize AG-UI interrupt and resume handling around
RUN_FINISHED.outcome.interruptsand canonicalResumeEntrypayloads (#6925) - agent-framework-mem0: Support the mem0ai 2.x OSS search call shape (#7004)
- agent-framework-mistral: Widen the
uv_buildbackend requirement to allow neweruvreleases (#7033) - agent-framework-lab: Raise the
agentlightningdependency ceiling for thelightningextra (#6984) - agent-framework-claude, agent-framework-durabletask, agent-framework-gemini, agent-framework-monty, agent-framework-openai: Raise dependency floors to the first versions that provide the SDK APIs and typing consumed by these packages
- docs: Clarify
AgentSession.service_session_idscoping to document backing API key/project boundaries and hosted multi-tenant guidance (#6993) - docs: Add security guidance for external skill sources and script execution to harness feature docstrings (#6936)
- samples: Bump
viteand@vitejs/plugin-react-swcin the ChatKit integration sample frontend (#6613) - samples: Add a multi-tenant hosting security consideration note to the A2A sample (#6983)
- samples: Update Foundry Hosted Agent samples for the v2 protocol changes (#6841)
- samples: Use a writable runtime directory for the Foundry Skills sample (#6606)
- tests: Add Agent typing smoke tests across chat clients (#6950)
- tests: Skip NumPy stubs during mypy typing to unblock scheduled dependency-maintenance typing runs (#6969)
- tests: Consolidate Dependabot dependency updates for dev tooling (
uv,ruff,pytest,mypy,pyright,mcp,opentelemetry-sdk,poethepoet) across the workspace and package dev-dependency groups (#6984, #7033) - tests: Bump the transitive
js-yamldependency in the DevUI frontend lockfile (#6813)
Fixed
- agent-framework-core: Parse the structured response value from the final message instead of concatenated text, avoiding spurious
ValidationError/JSONDecodeError(#6383) - agent-framework-core: Fix
read_skill_resourceinstruction dropping the.mdextension (#7031) - agent-framework-core: Bind policy-enforcement approvals to a single tool invocation (call id, function, arguments, security label, and session) and consume them on first use (#6966)
- agent-framework-core: Process messages to an executor serially within a superstep to prevent concurrent handler invocations for the same target executor (#6776)
- agent-framework-core: Auto-inject local conversation history on stateless clients even when non-history context providers (for example,
SkillsProviderandFileAccessProvider) are registered (#6810) - agent-framework-core: Improve the error message when a
TypeVaris used in handler/executor registration (#4553) - agent-framework-anthropic, agent-framework-core: Fix Anthropic requests that mix tool calls and tool results in one assistant message, and return a deterministic result when the function-loop limit is reached with a blank final response (#6794)
- agent-framework-anthropic, agent-framework-core, agent-framework-foundry-hosting, agent-framework-openai: Fix Foundry reasoning/MCP compaction so reasoning output keeps its provider id and ...
dotnet-1.13.0
What's Changed
- .NET: Harden dotnet-format workflow shell handling by @SergeyMenshykh in #6796
- .NET: Add AgentSkillsSourceContext to AgentSkillsSource.GetSkillsAsync by @SergeyMenshykh in #6797
- .NET: Foundry Hosting per-user session isolation and Responses v2 protocol fast-fail by @rogerbarreto in #6832
- .NET: Pin patched OpenAPI dependencies to unblock NU1903 in sample restores by @rogerbarreto with @Copilot in #6853
- Make skills source classes public with Experimental attribute by @SergeyMenshykh in #6838
- .NET: Consolidate skill-source caching and make skill sources disposable by @SergeyMenshykh in #6827
- .NET: Add skill approval options by @SergeyMenshykh in #6843
- .NET: [BREAKING] Add file editing tools and align FileAccess/FileMemory store API by @westey-m in #6807
- .NET: [BREAKING] Refactor OpenAI Hosting OptionsMapping to disallow passing options by default by @westey-m in #6855
- .NET: Remove Experimental attribute from Skills API in Microsoft.Agents.AI by @SergeyMenshykh in #6861
- .NET: Foundry Hosting gracefully tolerates lacking user identity when run locally by @rogerbarreto in #6870
- .NET: Bump Azure.AI.Projects to 2.1.0-beta.4 by @rogerbarreto in #6795
- .NET: Make default-approval harness features configurable + customizable shell tool by @westey-m in #6880
- .NET: Improving DotNet samples by @alliscode in #6869
- .NET: fix: Require explicit TokenCredential in AddFoundryToolboxes by @SergeyMenshykh in #6877
- .NET: Update .NET version to 1.13.0 by @SergeyMenshykh in #6900
New Contributors
- @VectorPeak made their first contribution in #6818
Full Changelog: dotnet-1.12.0...dotnet-1.13.0
dotnet-1.12.0
What's Changed
- .NET: Fix typo in XML doc comment for workflow outputs param by @marcominerva in #6326
- .NET: Add BackgroundTaskCompletionLoopEvaluator for harness background agents by @westey-m in #6736
- .NET: Foundry hosted-agent toolbox OAuth consent support by @rogerbarreto in #6718
- .NET: [BREAKING] Align Foundry.Hosting experimental flags to MAAI001 for MAF-specific APIs by @rogerbarreto in #6743
- .NET: Prefer HTTPS Aspire DevUI backends by @tommasodotNET in #6772
- .NET: Disable failing DurableTask and AzureFunctions integration tests by @SergeyMenshykh in #6774
- .NET: Sample fix by @alliscode in #6773
- .NET: [BREAKING] Extract caching from AgentSkillsProvider into CachingAgentSkillsSource by @SergeyMenshykh in #6768
- .NET: Add description attribute to resource and script elements in skill body by @SergeyMenshykh in #6759
- .NET: Enforce ApprovalRequiredAIFunction in GitHub Copilot provider via OnPreToolUse hook by @giles17 in #6674
- .NET: Improve proxy target validation in DevUI aggregator by @SergeyMenshykh in #6771
- .NET: [BREAKING] Bump Azure.AI.AgentServer to 2.0.0 protocol and migrate Foundry.Hosting by @rogerbarreto in #6800
- .NET: fix: resolve CA1873 in GitHubCopilotAgent by using LoggerMessage sour… by @alliscode in #6814
- .NET: fix: resolve CA1873 in GitHubCopilotAgent by using LoggerMessage sour… by @alliscode in #6815
- .NET: Bumping version for dotnet release. by @alliscode in #6816
- Update NuGet package icon to new Microsoft Agent Framework logo by @chetantoshniwal in #6812
New Contributors
- @marcominerva made their first contribution in #6326
Full Changelog: dotnet-1.11.1...dotnet-1.12.0
python-1.10.0
[1.10.0] - 2026-06-30
Added
- agent-framework-core: Explicitly emit
available_resourcesandavailable_scriptsin skill content (#6694) - agent-framework-core: Autolabelling MCP servers based on hints and GitHub MCP server interface labels (#6171)
- agent-framework-core:
create_harness_agentskills_pathsacceptsstr | Path | Sequence[str | Path] | None(#6717) - agent-framework-core: Background agent loop resolves provider automatically and adds feedback message builder (#6735)
- agent-framework-core: Stop swallowing skill script and resource errors so the model can self-correct (#6755)
- agent-framework-foundry: Add
FoundryAgentconversation session helper (#6623) - agent-framework-foundry: Add support for Foundry Adaptive evals (#6267)
- agent-framework-bedrock, agent-framework-gemini: Surface cache and reasoning token counts (#6640)
- agent-framework-durabletask: Host MAF workflows on a standalone Durable Task worker (#6418)
- agent-framework-azure-ai-search: Support stable and preview Azure AI Search (Foundry IQ) API versions (#6603)
- agent-framework-github-copilot: Align function approval to use SDK
on_pre_tool_usehook (#6750)
Changed
- agent-framework-core: [BREAKING — experimental] Refactor
FileSkillsSourcefor depth-based discovery and predicate filters (#6488) - agent-framework-core: [BREAKING — experimental] Require approval for file-access tools with read-only auto-approval (#6599)
- agent-framework-core: [BREAKING — experimental] Integrate looping into
HarnessAgent(#6607) - agent-framework-core: [BREAKING — experimental] Port
FileMemoryProviderand integrate into harness agent (#6547) - agent-framework-core: [BREAKING — experimental] Make all
SkillsProvidertools require approval by default (#6754) - agent-framework-core: [BREAKING — experimental] Improve FileAccess/FileMemory harness providers (surgical edits, read-only tier, consistent naming) (#6801)
- agent-framework-core: Align serialized tool format to OTel GenAI tool definition format (#6556)
- agent-framework-foundry-hosting: [BREAKING] Foundry Hosted Agent V2 protocol upgrade (#6811)
- agent-framework-foundry-hosting: Add MCP as a hard dependency (#6634)
- agent-framework-purview: Prefer token principal for user identity (#6693)
- agent-framework-ollama: Convert Pydantic model class
response_formatto JSON schema inOllamaChatClient(#6782)
Fixed
- agent-framework-core: Fix background agent telemetry context error (#6764)
- agent-framework-core: Fix MCP metadata and tool name handling (#6656)
- agent-framework-core: Ensure spans created inside sync preparations in streaming call are correctly nested (#6552)
- agent-framework-openai: Preserve OTel parent context for deferred streams (#6709)
- agent-framework-openai: Fix
FunctionShellToolthrow and empty streaming shell command (#6763) - agent-framework-ag-ui: Fix tool history replay sanitization (#6581)
- agent-framework-anthropic: Re-role trailing assistant message to user for Anthropic compatibility (#6207)
- agent-framework-hyperlight: Fix CodeAct span parenting (#6712)
- agent-framework-hyperlight: Harden output capture against symlinks (#6601)