1.10.0 (2025-08-07)
- [Live] Implement Live Session Resumption (71fbc92)
- [Tool] Support parallel execution of parallel function calls (57cd41f)
- [Models] Allow max tokens to be customizable in Claude (7556ebc)
- [Tool] Create enterprise_web_search_tool as a tool instance (0e28d64)
- Fix shared default plugin manager and cost manager instances among multiple invocations (423542a)
- Correct the type annotation in anthropic_llm implementation (97318bc)
- Fix adk deploy cloud_run cli, which was broken in v1.9.0 (e41dbcc)
- Remove thoughts from contents in llm requests from history contents (d620bcb)
- Annotate response type as None for transfer_to_agent tool (86a4487)
- Fix incompatible a2a sdk changes (faadef1)
- Fix adk cli options and method parameters mismatching (8ef2177)
- Add Github workflow config for the ADK Answering agent (8dc0c94)
- Import AGENT_CARD_WELL_KNOWN_PATH from adk instead of from a2a directly (37dae9b)
- Make
LlmRequest.LiveConnectConfigfield default to a factory (74589a1) - Update the prompt to make the ADK Answering Agent more objective (2833030)
- Add sample agent for testing parallel functions execution (90b9193)
- Hide the ask_data_insights tool until the API is publicly available (bead607)
- Change
LlmRequest.config's default value to betypes.GenerateContentConfig()(041f04e) - Prevent triggering of _load_from_yaml_config in AgentLoader (db975df)
- Fix typos (16a15c8)
1.9.0 (2025-07-31)
- [CLI] Add
-v,--verboseflag to enable DEBUG logging as a shortcut for--log_level DEBUG(3be0882) - [CLI] Add a CLI option to update an agent engine instance (206a132)
- [CLI] Modularize fast_api.py to allow simpler construction of API Server (bfc203a, dfc25c1, e176f03)
- [CLI] Refactor AgentLoader into base class and add InMemory impl alongside existing filesystem impl (bda3df2)
- [CLI] Respect the .ae_ignore file when deploying to agent engine (f29ab5d)
- [Core] Add new callbacks to handle tool and model errors (00afaaf)
- [Core] Add sample plugin for logging (20537e8)
- [Core] Expose Gemini RetryOptions to client (1639298)
- [Evals] Added an Fast API new endpoint to serve eval metric info (c69dcf8)
- [Evals] Refactored AgentEvaluator and updated it to use LocalEvalService (1355bd6)
- Add absolutize_imports option when deploying to agent engine (fbe6a7b)
- Add space to allow adk deploy cloud_run --a2a (70c4616)
- Copy the original function call args before passing it to callback or tools to avoid being modified (3432b22)
- Eval module not found exception string (7206e0a)
- Fix incorrect token count mapping in telemetry (c8f8b4a)
- Import cli's artifact dependencies directly (282d67f)
- Keep existing header values while merging tracking headers for
llm_request.config.http_optionsinGemini.generate_content_async(6191412) - Merge tracking headers even when
llm_request.config.http_optionsis not set inGemini.generate_content_async(ec8dd57) - Restore bigquery sample agent to runnable form (16e8419)
- Return session state in list_session API endpoint (314d6a4)
- Runner was expecting Event object instead of Content object when using early exist feature (bf72426)
- Unable to acquire impersonated credentials (9db5d9a)
- Update
agent_card_builderto follow grammar rules (9c0721b), closes #2223 - Use correct type for actions parameter in ApplicationIntegrationToolset (ce7253f)
- Update documents about the information of vibe coding (0c85587)
1.8.0 (2025-07-23)
- [Core]Add agent card builder (18f5bea)
- [Core]Add an to_a2a util to convert adk agent to A2A ASGI application (a77d689)
- [Core]Add camel case converter for agents (0e173d7)
- [Evals]Use LocalEvalService to run all evals in cli and web (d1f182e)
- [Evals]Enable FinalResponseMatchV2 metric as an experiment (36e45cd)
- [Models]Add support for
model-optimizer-*family of models in vertex (ffe2bdb) - [Services]Added a sample for History Management (67284fc)
- [Services]Support passing fully qualified agent engine resource name when constructing session service and memory service ([2e77804](https://github.com/google/adk-python/commit/2e778049d0a675e458f4e 35fe4104ca1298dbfcf))
- [Tools]Add ComputerUseToolset (083dcb4)
- [Tools]Allow toolset to process llm_request before tools returned by it (3643b4a)
- [Tools]Support input/output schema by fully-qualified code reference (dfee06a)
- [Tools]Enhance LangchainTool to accept more forms of functions (0ec69d0)
- Attention: Logging level for some API requests and responses was moved from
INFOtoDEBUG(ff31f57)- Please set
--log_level=DEBUG, if you are interested in having those API request and responses in logs.
- Please set
- Add buffer to the write file option (f2caf2e)
- Allow current sub-agent to finish execution before exiting the loop agent due to a sub-agent's escalation. (2aab1cf)
- Check that
mean_scoreis a valid float value (65cb6d6) - Handle non-json-serializable values in the
execute_sqltool (13ff009) - Raise
NotFoundErrorinlist_eval_setsfunction when app_name doesn't exist (b17d8b6) - Fixed serialization of tools with nested schema (53df35e)
- Set response schema for function tools that returns
None(33ac838) - Support path level parameters for open_api_spec_parser (6f01660)
- Use correct type for actions parameter in ApplicationIntegrationToolset (ce7253f)
- Use the same word extractor for query and event contents in InMemoryMemoryService (1c4c887)
- Fix missing toolbox-core dependency and improve installation guide (2486349)
- Add ability to send state change with message 3f9f773
- [Eval] Support for persisting eval run results bab3be2
- Introduce [Plugin]: Plugin is simply a class that packages these individual callback functions together for a broader purpose162228d
- Create correct object for image and video content in litellm bf7745f
- Support project-based gemini model path for BuiltInCodeExecutor and all built-in tools a5d6f1e
- Add instruction in long running tool description to avoid being invoked again by model 62a6119
- [A2A] Import A2A well known path from A2A sdk a6716a5
- Fix the long running function response event merge logic 134ec0d
- [A2A] Return final task result in task artifact instead of status message a8fcc1b
- Make InMemoryMemoryService thread-safe 10197db
- Improve partial event handling and streaming aggregation 584c8c6
- Update agent transfer related doc string and comments b1fa383
- Update doc string for GcsArtifactService 498ce90
1.6.1 (2025-07-09)
-
Add A2A support as experimental features f0183a9
- Install google-adk with a2a extra: pip install google-adk[a2a]
- Users can serve agents as A2A agent with
--a2aoption foradk webandadk api_server - Users can run a remote A2A agent with
RemoteA2AAgentclass - Three A2A agent samples are added:
- contributing/samples/a2a_basic
- contributing/samples/a2a_auth
- contributing/samples/a2a_human_in_loop
-
Support agent hot reload.e545e5a Users can add
--reload_agentsflag toadk webandadk api_servercommand to reload agents automatically when new changes are detected. -
Eval features
-
Minor features
- Add
custom_metadatato VertexAiSessionService when adding events a021222 - Support protected write in BigQuery
execute_sqltool dc43d51 - Added clone() method to BaseAgent to allow users to create copies of an agent [d263afd] (https://github.com/google/adk-python/commit/d263afd91ba4a3444e5321c0e1801c499dec4c68)
- Add
- Support project-based gemini model path to use enterprise_web_search_tool e33161b
- Use inspect.signature() instead of typing.get_type_hints for examining function signatures4ca77bc
- Replace Event ID generation with UUID4 to prevent SQLite integrity constraint failures e437c7a
- Remove duplicate options from
adk deploy3fa2ea7 - Fix scenario where a user can access another users events given the same session id 362fb3f
- Handle unexpected 'parameters' argument in FunctionTool.run_async 0959b06
- Make sure each partial event has different timestamp 17d6042
- Avoid pydantic.ValidationError when the model stream returns empty final chunk 9b75e24
- Fix google_search_tool.py to support updated Gemini LIVE model naming 77b869f
- Adding detailed information on each metric evaluation 04de3e1
- Converts litellm generate config err 3901fad
- Save output in state via output_key only when the event is authored by current agent 20279d9
- Treat SQLite database update time as UTC for session's last update time 3f621ae
- Raise ValueError when sessionId and userId are incorrect combination(#1653) 4e765ae
- Support API-Key for MCP Tool authentication 045aea9
- Lock LangGraph version to <= 0.4.10 9029b8a
- Update the retry logic of create session polling 3d2f13c
- Extract mcp client creation logic to a separate method 45d60a1
- Add tests for live streaming configs bf39c00
- Update ResponseEvaluator to use newer version of Eval SDK 62c4a85
- Add util to build our llms.txt and llms-full.txt files a903c54
- Create an example for multi agent live streaming a58cc3d
- Refactor the ADK Triaging Agent to make the code easier to read b6c7b5b
- Update the a2a exmaple link in README.md d0fdfb8
- Adds AGENTS.md to provide relevant project context for the Gemini CLI 37108be
- Update CONTRIBUTING.md ffa9b36
- Add adk project overview and architecture 28d0ea8
- Add docstring to clarify that inmemory service are not suitable for production dc414cb
- Update agents.md to include versioning strategy 6a39c85
- Add tenacity into project.toml df141db
- Updating CONTRIBUTING.md with missing extra e153d07
1.5.0 (2025-06-25)
- Add a new option
eval_storage_uriin adk web & adk eval to specify GCS bucket to store eval data (fa025d7) - Add ADK examples for litellm with add_function_to_prompt (f33e090)
- Add implementation of VertexAiMemoryBankService and support in FastAPI endpoint (abc89d2)
- Add rouge_score library to ADK eval dependencies, and implement RougeEvaluator that is computes ROUGE-1 for "response_match_score" metric (9597a44)
- Add usage span attributes to telemetry (#356) (ea69c90)
- Add Vertex Express mode compatibility for VertexAiSessionService (00cc8cd)
- Include current turn context when include_contents='none' (9e473e0)
- Make LiteLLM streaming truly asynchronous (bd67e84)
- Make raw_auth_credential and exchanged_auth_credential optional given their default value is None (acbdca0)
- Minor typo fix in the agent instruction (ef3c745)
- Typo fix in sample agent instruction (ef3c745)
- Update contributing links (a1e1441)
- Use starred tuple unpacking on GCS artifact blob names (3b1d9a8)
- Do not send api request when session does not have events (88a4402)
- Leverage official uv action for install(09f1269)
- Update google-genai package and related deps to latest(ed7a21e)
- Add credential service backed by session state(29cd183)
- Clarify the behavior of Event.invocation_id(f033e40)
- Send user message to the agent that returned a corresponding function call if user message is a function response(7c670f6)
- Add request converter to convert a2a request to ADK request(fb13963)
- Support allow_origins in cloud_run deployment (2fd8feb)
1.4.2 (2025-06-20)
- Add type checking to handle different response type of genai API client (4d72d31)
- This fixes the broken VertexAiSessionService
- Allow more credentials types for BigQuery tools (2f716ad)
1.4.1 (2025-06-18)
- Add Authenticated Tool (Experimental) (dcea776)
- Add enable_affective_dialog and proactivity to run_config and llm_request (fe1d5aa)
- Add import session API in the fast API (233fd20)
- Add integration tests for litellm with and without turning on add_function_to_prompt (8e28587)
- Allow data_store_specs pass into ADK VAIS built-in tool (675faef)
- Enable MCP Tool Auth (Experimental) (157d9be)
- Implement GcsEvalSetResultsManager to handle storage of eval sets on GCS, and refactor eval set results manager (0a5cf45)
- Re-factor some eval sets manager logic, and implement GcsEvalSetsManager to handle storage of eval sets on GCS (1551bd4)
- Support real time input config (d22920b)
- Support refresh access token automatically for rest_api_tool (1779801)
- Fix Agent generate config err (#1305) (badbcbd)
- Fix Agent generate config error (#1450) (694b712)
- Fix liteLLM test failures (fef8778)
- Fix tracing for live (58e07ca)
- Merge custom http options with adk specific http options in model api request (4ccda99)
- Remove unnecessary double quote on Claude docstring (bbceb4f)
- Set explicit project in the BigQuery client (6d174eb)
- Support streaming in litellm + adk and add corresponding integration tests (aafa80b)
- Support project-based gemini model path to use google_search_tool (b2fc774)
- Update conversion between Celsius and Fahrenheit (1ae176a)
- Set
agent_engine_idin the VertexAiSessionService constructor, also use theagent_engine_idfield instead of overridingapp_namein FastAPI endpoint (fc65873)
1.3.0 (2025-06-11)
- Add memory_service option to CLI (416dc6f)
- Add support for display_name and description when deploying to agent engine (aaf1f9b)
- Dev UI: Trace View
- New trace tab which contains all traces grouped by user messages
- Click each row will open corresponding event details
- Hover each row will highlight the corresponding message in dialog
- Dev UI: Evaluation
- Tool enhancements:
- Agent Engine deployment:
- Fix broken agent graphs (3b1f2ae)
- Forward
__annotations__to the fake func for FunctionTool inspection (9abb841) - Handle the case when agent loading error doesn't have msg attribute in agent loader (c224626)
- Prevent agent_graph.py throwing when workflow agent is root agent (4b1c218)
- Remove display_name for non-Vertex file uploads (cf5d701)
- Add DeepWiki badge to README (f38c08b)
- Update code example in tool declaration to reflect BigQuery artifact description (3ae6ce1)
1.2.1 (2025-06-04)
- Import deprecated from typing_extensions (068df04)
1.2.0 (2025-06-04)
- Add agent engine as a deployment option to the ADK CLI (2409c3e)
- Add an option to use gcs artifact service in adk web. (8d36dbd)
- Add index tracking to handle parallel tool call using litellm (05f4834)
- Add sortByColumn functionality to List Operation (af95dd2)
- Add implementation for
get_eval_case,update_eval_caseanddelete_eval_casefor the local eval sets manager. (a7575e0) - Expose more config of VertexAiSearchTool from latest Google GenAI SDK (2b5c89b)
- New Agent Visualization (da4bc0e)
- Set the max width and height of view image dialog to be 90% (98a635a)
- Support Langchain StructuredTool for Langchain tool (7e637d3)
- Support Langchain tools that has run_manager in _run args and don't have args_schema populated (3616bb5)
- Update for anthropic models (16f7d98)
- Use bigquery scope by default in bigquery credentials. (ba5b80d)
- Add jira_agent adk samples code which connect Jira cloud (8759a25)
- Render HTML artifact in chat window (5c2ad32)
- Add export to json button in the chat window (fc3e374)
- Add tooltip to the export session button (2735942)
- Add adk icon for UI (2623c71)
- Add cache_ok option to remove sa warning. (841e10a)
- Add support for running python main function in UnsafeLocalCodeExecutor when the code has an if name == "main" statement. (95e33ba)
- Adk web not working on some env for windows, fixes google/adk-web#34 (daac8ce)
- Assign empty inputSchema to MCP tool when converting an ADK tool that wraps a function which takes no parameters. (2a65c41)
- Call all tools in parallel calls during partial authentication (0e72efb)
- Continue fetching events if there are multiple pages. (6506302)
- Do not convert "false" value to dict (60ceea7)
- Enhance agent loader exception handler and expose precise error information (7b51ae9)
- Ensure function description is copied when ignoring parameters (7fdc6b4)
- Filter memory by app_name and user_id. (db4bc98)
- Fix filtering by user_id for vertex ai session service listing (9d4ca4e)
- fix parameter schema generation for gemini (5a67a94)
- Handle non-indexed function call chunks with incremental fallback index (b181cbc)
- Handles function tool parsing corner case where type hints are stored as strings. (a8a2074)
- Introduce PreciseTimestamp to fix mysql datetime precision issue. (841e10a)
- match arg case in errors (b226a06)
- ParallelAgent should only append to its immediate sub-agent, not transitive descendants (ec8bc73)
- Relax openapi spec to gemini schema conversion to tolerate more cases (b1a74d0)
- Remove labels from config when using API key from Google AI Studio to call model (5d29716)
- sample: Correct text artifact saving in artifact_save_text sample (5c6001d)
- Separate thinking from text parts in streaming mode (795605a)
- Simplify content for ollama provider (eaee49b)
- Timeout issues for mcpstdio server when mcp tools are incorrect. (45ef668)
- transfer_to_agent: update docstring for clarity and accuracy (854a544)
- Update unit test code for test_connection (b0403b2)
- Use inspect.cleandoc on function docstrings in generate_function_declaration. (f7cb666)
- Restore errors path (32c5ffa)
- Unused import for deprecated (ccd05e0)
- Prevent JSON parsing errors and preserve non-ascii characters in telemetry (d587270)
- Raise HTTPException when running evals in fast_api if google-adk[eval] is not installed (1de5c34)
- Fix typos in README for sample bigquery_agent and oauth_calendar_agent (9bdd813)
- Make tool_call one span for telemetry and renamed to execute_tool (999a7fe)
- Use media type in chat window. Remove isArtifactImage and isArtifactAudio reference (1452dac)
- Set output_schema correctly for LiteLllm (6157db7)
- Update pending event dialog style (1db601c)
- Remove the gap between event holder and image (63822c3)
- Adds a sample agent to illustrate state usage via
callbacks. (18fbe3c) - Fix typos in documentation (7aaf811)
- Change eval_dataset to eval_dataset_file_path_or_dir (62d7bf5)
- Fix broken link to A2A example (0d66a78)
- Fix typo in envs.py (bd588bc)
- Updates CONTRIBUTING.md to refine setup process using uv. (04e07b4)
- Create and update project documentation including README.md and CONTRIBUTING.md (f180331)
- Rename the root agent in the example to match the example name (94c0aca)
- ADK: add section comment (349a414)
- Miscellaneous changes (0724a83, a9dcc58, ac52eab, a0714b8)
- Enable release-please workflow (57d99aa)
- Added unit test coverage for local_eval_sets_manager.py (174afb3)
- Extract common options for
adk webandadk api_server(01965bd)
- Add BigQuery first-party tools. See here for more details.
- Extract agent loading logic from fast_api.py to a separate AgentLoader class and support more agent definition folder/file structure.
- Added audio play in web UI.
- Added input transcription support for live/streaming.
- Added support for storing eval run history locally in adk eval cli.
- Image artifacts can now be clicked directly in chat message to view.
- Left side panel can now be resized.
- Avoid duplicating log in stderr.
- Align event filtering and ordering logic.
- Add handling for None param.annotation.
- Fixed several minor bugs regarding eval tab in web UI.
- Updates mypy config in pyproject.toml.
- Add google search agent in samples.
- Update filtered schema parameters for Gemini API.
- Adds autoformat.sh for formatting codebase.
- Evaluation dataset schema is finalized with strong-type pydantic models. (previously saved eval file needs re-generation, for both adk eval cli and the eval tab in adk web UI).
BuiltInCodeExecutor(in code_executors package) replacesBuiltInCodeExecutionTool(previously in tools package).- All methods in services are now async, including session service, artifact
service and memory service.
list_eventsandclose_sessionmethods are removed from session service.
- agent.py file structure with MCP tools are now easier and simpler (now vs before). Old format is not working anymore.
Memoryschema andMemoryServiceis redesigned.- Mark various class attributes as private in the classes in the
toolspackage. - Disabled session state injection if instruction provider is used.
(so that you can have
{var_name}in the instruction, which is required for code snippets) - Toolbox integration is revamped: tools/toolbox_tool.py → tools/toolbox_toolset.py.
- Removes the experimental
remote_agent.py. We'll redesign it and bring it back.
- Dev UI:
- A brand new trace view for overall agent invocation.
- A revamped evaluation tab and comparison view for checking eval results.
- Introduced
BaseToolsetto allow dynamically add/remove tools for agents.- Revamped MCPToolset with the new BaseToolset interface.
- Revamped GoogleApiTool, GoogleApiToolset and ApplicationIntegrationToolset with the new BaseToolset interface.
- Resigned agent.py file structure when needing MCPToolset.
- Added ToolboxToolset.
- Redesigned strong-typed agent evaluation schema.
- Allows users to create more cohesive eval sets.
- Allows evals to be extended for non-text modality.
- Allows for a structured interaction with the uber eval system.
- Redesigned Memory schema and MemoryService interfaces.
- Added token usage to LlmResponse.
- Allowed specifying
--adk_versioninadk deploy cloud_runcli. Default is the current version.
- Fixed
adk deploy cloud_runfailing bug. - Fixed logs not being printed due to
google-authlibrary.
- Display full help text when adk cli receives invalid arguments.
adk webnow binds127.0.0.1by default, instead of 0.0.0.0.InMemoryRunnernow takesBaseAgentin constructor.- Various docstring improvements.
- Various UI tweaks.
- Various bug fixes.
- Update various contributing/samples for contributors to validate the implementation.
- Updated artifact and memory service interface to be async. Agents that interact with these services through callbacks or tools will now need to adjust their invocation methods to be async (using await), or ensure calls are wrapped in an asynchronous executor like asyncio.run(). Any service that extends the base interface must also be updated.
- Introduced the ability to chain model callbacks.
- Added support for async agent and model callbacks.
- Added input transcription support for live/streaming.
- Captured all agent code error and display on UI.
- Set param required tag to False by default in openapi_tool.
- Updated evaluation functions to be asynchronous.
- Ensured a unique ID is generated for every event.
- Fixed the issue when openapi_specparser has parameter.required as None.
- Updated the 'type' value on the items/properties nested structures for Anthropic models to adhere to JSON schema.
- Fix litellm error issues.
- Regenerated API docs.
- Created a
developerfolder and added samples. - Updated the contributing guide.
- Docstring improvements, typo fixings, GitHub action to enforce code styles on formatting and imports, etc.
- Set the max size of strings in database columns. MySQL mandates that all VARCHAR-type fields must specify their lengths.
- Extract content encode/decode logic to a shared util, resolve issues with JSON serialization, and update key length for DB table to avoid key too long issue in mysql.
- Enhance
FunctionToolto verify if the model is providing all the mandatory arguments.
- Update ADK setup guide to improve onboarding experience.
- feat: add ordering to recent events in database session service.
- feat(llm_flows): support async before/after tool callbacks.
- feat: Added --replay and --resume options to adk run cli. Check adk run --help for more details.
- Created a new Integration Connector Tool (underlying of the ApplicationIntegrationToolSet) so that we do not force LLM to provide default value.
- Don't send content with empty text to LLM.
- Fix google search reading undefined for
renderedContent.
- Docstring improvements, typo fixings, github action to enfore code styles on formatting and imports, etc.
- Auth: expose
access_tokenandrefresh_tokenat top level of auth credentials, instead of adict(commit).
- Added support for running agents with MCPToolset easily on
adk web. - Added
custom_metadatafield toLlmResponse, which can be used to tag LlmResponse viaafter_model_callback. - Added
--session_db_urltoadk deploy cloud_runoption. - Many Dev UI improvements:
- Better google search result rendering.
- Show websocket close reason in Dev UI.
- Better error message showing for audio/video.
- Fixed MCP tool json schema parsing issue.
- Fixed issues in DatabaseSessionService that leads to crash.
- Fixed functions.py.
- Fixed
skip_summarizationbehavior inAgentTool.
- README.md improvements.
- Various code improvements.
- Various typo fixes.
- Bump min version of google-genai to 1.11.0.
- Fix typo in method name in
Event: has_trailing_code_exeuction_result --> has_trailing_code_execution_result.
adkCLI:- Introduce
adk createcli tool to help creating agents. - Adds
--verbosityoption toadk deploy cloud_runto show detailed cloud run deploy logging.
- Introduce
- Improve the initialization error message for
DatabaseSessionService. - Lazy loading for Google 1P tools to minimize the initial latency.
- Support emitting state-change-only events from planners.
- Lots of Dev UI updates, including:
- Show planner thoughts and actions in the Dev UI.
- Support MCP tools in Dev UI.
(NOTE:
agent.pyinterface is temp solution and is subject to change) - Auto-select the only app if only one app is available.
- Show grounding links generated by Google Search Tool.
.envfile is reloaded on every agent run.
LiteLlm: arg parsing error and python 3.9 compatibility.DatabaseSessionService: adds the missing fields; fixes event with empty content not being persisted.- Google API Discovery response parsing issue.
load_memory_toolrendering issue in Dev UI.- Markdown text overflows in Dev UI.
- Adds unit tests in Github action.
- Improves test coverage.
- Various typo fixes.
- Initial release of the Agent Development Kit (ADK).
- Multi-agent, agent-as-workflow, and custom agent support
- Tool authentication support
- Rich tool support, e.g. built-in tools, google-cloud tools, third-party tools, and MCP tools
- Rich callback support
- Built-in code execution capability
- Asynchronous runtime and execution
- Session, and memory support
- Built-in evaluation support
- Development UI that makes local development easy
- Deploy to Google Cloud Run, Agent Engine
- (Experimental) Live(Bidi) audio/video agent support and Compositional Function Calling(CFC) support