‹ Reports
The Dispatch

Microsoft Semantic Kernel Project Faces Challenges with Function Calling Bugs Amidst Active Development

The Microsoft Semantic Kernel project, aimed at integrating Large Language Models (LLMs) into applications using languages like C#, Python, and Java, has been actively developed with a focus on enhancing agent functionalities and integrating new AI models. However, recent issues highlight challenges with function calling and execution, particularly in parallel contexts.

Recent Activity

Recent issues and pull requests (PRs) indicate a focus on improving agent capabilities and memory management. Notable issues include #8292, which reports bugs in Python's GPT4o function calling, and #8276, which describes problems with parallel execution in .NET. These issues suggest a need for better error handling and logging mechanisms. The development team is actively working on enhancements across both Python and .NET components, with Evan Mattson leading efforts on agent chat functionalities and Eduard van Valkenburg improving memory connectors. Other team members like Sergey Menshykh and Tao Chen are enhancing OpenAPI parameter mapping and integrating new AI models.

Of Note

  1. Function Calling Bugs: Issues like #8292 highlight ongoing challenges with function calling in different contexts, necessitating improved error handling.
  2. Parallel Execution Issues: Problems such as #8276 indicate difficulties with executing functions in parallel, affecting response generation.
  3. Integration of New Models: The project is actively incorporating new AI models like Anthropic, reflecting a commitment to staying current with technology trends.
  4. Memory Management Enhancements: Recent PRs focus on optimizing memory connectors and vector stores, suggesting an emphasis on performance improvements.
  5. Community Feedback Responsiveness: The team is responsive to community feedback, as seen in the restoration of features based on user input.

This analysis underscores the project's dynamic development environment while highlighting areas needing attention to ensure robust functionality and user satisfaction.

Quantified Reports

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Roger Barreto 7 26/23/0 28 616 208070
John Oliver 2 4/3/0 3 323 79647
westey 2 22/20/0 23 138 24790
Chris 7 12/7/1 33 220 15693
Eduard van Valkenburg 1 14/12/0 8 157 11868
Evan Mattson 1 14/14/0 16 125 11687
Charlize Yeh (charlizeyeh) 1 1/1/0 1 65 7889
Tao Chen 1 6/5/0 5 56 7735
SergeyMenshykh 3 10/9/1 9 51 4409
Krzysztof Kasprowicz 1 0/0/0 1 44 3437
Maurycy Markowski 1 0/0/0 1 30 2120
Andrew Desousa 1 2/1/0 1 15 902
Mark Wallace 1 14/10/2 12 14 731
Gil LaHaye 1 0/0/0 1 31 723
dependabot[bot] 2 32/18/13 24 7 626
feiyun0112 1 0/0/0 1 8 517
Nico Möller 1 3/0/1 1 8 361
Caleb Kiage 1 1/1/0 1 6 316
Dmytro Struk 3 9/7/0 5 24 300
Nir Schleyen 1 1/1/0 1 5 76
Sophia Lagerkrans-Pandey 1 2/0/0 1 1 49
Chris Vaisnor 1 1/1/0 1 6 42
Babatunde L. Afolabi 1 1/1/0 1 1 36
Davide Mauri 1 1/1/0 1 1 2
Eirik Tsarpalis 1 2/1/0 1 1 2
token 1 1/1/0 1 1 1
Kind Jeff (sljeff) 0 1/0/0 0 0 0
Afshin Mehrabani (afshinm) 0 1/0/1 0 0 0
gparmigiani (jkone27) 0 1/0/0 0 0 0
Matthew Niculae (MattNic2) 0 1/0/0 0 0 0
Abhi (aghimir3) 0 1/0/1 0 0 0
David Grieve (dsgrieve) 0 1/0/1 0 0 0
Hao Luo (howlowck) 0 1/0/0 0 0 0
Bryan (Bryan-Roe) 0 4/0/4 0 0 0
Atiqur Rahman Foyshal (atiq-bs23) 0 5/0/0 0 0 0
Hakeem Abbas (hakeemsyd) 0 1/0/0 0 0 0
ふぁー (ymuichiro) 0 1/0/0 0 0 0
Aayush Kataria (aayush3011) 0 1/0/0 0 0 0
Stephen Toub (stephentoub) 0 1/0/0 0 0 0
zhikaiwang (FriedChickenOnTheWay) 0 1/0/1 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 38 24 16 0 1
14 Days 64 38 42 0 1
30 Days 133 74 97 3 1
All Time 2923 2432 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Microsoft Semantic Kernel project has seen significant recent activity, with a total of 491 open issues. The latest issues highlight ongoing challenges and enhancements related to various programming languages (C#, Python, Java) and integrations with AI models. Notably, there are several bugs and feature requests focusing on function calling, plugin behavior, and integration with Azure OpenAI services.

A recurring theme in the recent issues is the handling of function calls and their interactions with the chat history, particularly concerning how responses are generated and managed. There are also discussions around improving the user experience by refining how plugins are invoked and how results are returned.

Issue Details

Most Recently Created Issues

  1. Issue #8292: Python: GPT4o function calling occasionally buggy?

    • Priority: Bug
    • Status: Open
    • Created: 0 days ago
    • Details: Reports inconsistencies in function calling with the GPT4 model, specifically regarding tool name formatting errors.
  2. Issue #8285: Python: Instrument kernel functions: traces, logs and metrics

    • Priority: Enhancement
    • Status: Open
    • Created: 1 day ago
    • Details: Suggests adding instrumentation for better tracking of kernel function performance.
  3. Issue #8276: .Net: Bug: Running ExecutePlanner in parallel leads to no answers generated

    • Priority: Bug
    • Status: Open
    • Created: 1 day ago
    • Details: Describes issues when executing planner functions in parallel, resulting in fewer valid responses.
  4. Issue #8273: .Net: VectorStore: Add a Volatile Vector Search implementation

    • Priority: Feature Request
    • Status: Open
    • Created: 1 day ago
    • Details: Requests the addition of a volatile vector search implementation for improved memory management.
  5. Issue #8272: .Net: VectorStore: Add Redis Vector Search implementation

    • Priority: Feature Request
    • Status: Open
    • Created: 1 day ago
    • Details: Proposes adding support for Redis as a vector store for enhanced data retrieval capabilities.

Most Recently Updated Issues

  1. Issue #8276: .Net: Bug: Running ExecutePlanner in parallel leads to no answers generated

    • Updated recently by Ashutosh Singh.
  2. Issue #8255: Bug: Handlebars planner fails to create plan

    • Updated recently; issue involves JSON serialization errors during plan creation.
  3. Issue #8189: Bug: Facing issue with chat completion streaming option using GPT4O and GPT4V model with Azure SDK V2

    • Updated recently; discusses problems with streaming options leading to HTTP 400 errors.
  4. Issue #7968: Python: FunctionCallingStepwisePlanner results in "Function Call arguments are not valid JSON.."

    • Updated recently; addresses JSON validation errors during function calls.
  5. Issue #8255: Bug: Handlebars planner fails to create plan

    • Updated recently; involves serialization issues when creating plans using Handlebars templates.

Common Themes and Notable Anomalies

  • A significant number of recent issues revolve around bugs related to function calling and execution within different contexts (e.g., parallel execution leading to unexpected results).
  • There is a clear need for improved error handling and logging mechanisms, especially concerning how responses from AI models are processed and returned.
  • The integration of new features such as vector stores and enhancements to existing functionalities like logging metrics indicates an active development environment focused on expanding capabilities.
  • Several issues highlight inconsistencies between expected behavior (e.g., response formats) and actual outcomes, particularly when dealing with different AI models or configurations (e.g., Azure OpenAI).

This analysis indicates that while the Semantic Kernel project is robust and actively developed, it faces challenges typical of complex software systems integrating advanced AI functionalities. The community's engagement through issue reporting suggests a collaborative effort toward continuous improvement.

Report On: Fetch pull requests



Overview

The dataset comprises a collection of open pull requests (PRs) from the Microsoft Semantic Kernel repository, which is designed to facilitate the integration of Large Language Models (LLMs) into applications. The PRs cover various enhancements, bug fixes, and new features across multiple programming languages, primarily C# and Python.

Summary of Pull Requests

  1. PR #8299: Introduces "Root" agent selection for .NET agents to reduce latency in the first response during agent interactions. This enhancement is significant for improving user experience in chat applications.

  2. PR #8298: A draft PR that introduces vector search capabilities for new memory connectors in Python, specifically targeting Azure AI Search. It is still in progress with additional tests and implementations needed.

  3. PR #8297: A draft PR that exposes UserAgent header customization for .NET, addressing issue #7444. Discussion among reviewers indicates potential concerns about prefix configurations.

  4. PR #8296: Allows JSON serializer options to be passed down from vector store options in .NET, enhancing flexibility for users configuring Azure AI Search clients.

  5. PR #8291: Adds support for OpenAPI descriptions with server variables in .NET, addressing issue #8193. The implementation is still under review with comments suggesting improvements.

  6. PR #8290: Refactors Weaviate integration test files for better organization and maintainability in .NET.

  7. PR #8289: Optimizes Pinecone's GetBatchAsync method to retrieve multiple entries with a single request, improving performance.

  8. PR #8287: Similar optimization for SQLite's GetBatchAsync method to enhance efficiency by reducing the number of queries executed.

  9. PR #8283: Updates the ruff dependency in Python to version 0.6.1, addressing issues related to Jupyter notebook linting.

  10. PR #8280: Instruments kernel functions in .NET for better observability, laying groundwork for future metrics tracking.

  11. PR #8274: Adds a vector search abstraction and Azure AI Search implementation in .NET as part of ongoing memory abstractions evolution.

  12. PR #8175: Introduces streaming support for OpenAIAssistantAgent and AgentChat, enhancing real-time interaction capabilities.

  13. PR #8106: Draft PR for an ONNX connector aimed at integrating ONNX models with Semantic Kernel, still requiring additional testing and implementation.

  14. PR #8018: A draft PR focused on instrumenting kernel functions for telemetry purposes, indicating a move towards enhanced monitoring capabilities.

  15. PR #7979: Removes legacy experimental agents project and samples, streamlining the codebase towards the new agent framework.

  16. PR #7963: A draft PR aimed at updating JsonSchemaMapper to incorporate .NET 9 shim, enhancing compatibility with newer frameworks.

  17. PR #7557: Adds an implementation of Azure CosmosDB for NoSQL connector as part of the new memory design.

  18. PR #6482: Introduces an MSSQL Server connector using vector search with plain tables, expanding the database support within Semantic Kernel.

  19. PR #6339: Draft PR to bring back a Spring Boot sample for Java users, enhancing documentation and usability.

  20. PR #6820: Documents the decision-making process regarding creating a separate Java repository, indicating ongoing structural changes within the project.

Analysis of Pull Requests

The pull requests reflect several key themes and trends within the Microsoft Semantic Kernel project:

Active Development and Feature Expansion

The repository shows a robust activity level with numerous open PRs aimed at expanding functionality across different programming languages (C#, Python, Java). Notably, there is a strong focus on enhancing memory connectors and optimizing existing functionalities (e.g., batch retrieval methods), which suggests a concerted effort to improve performance and usability.

Collaboration and Review Process

The comments on various PRs indicate an active review process where contributors engage constructively with one another to refine implementations and address potential issues before merging changes into the main branch. For instance, discussions around PRs like #8297 highlight concerns about configuration management that could impact multiple projects within the same application domain.

Integration of New Technologies

Several PRs are dedicated to integrating new technologies such as ONNX models (#8106) and Azure CosmosDB (#7557). This indicates an adaptive approach to evolving AI technologies and their incorporation into existing frameworks, ensuring that developers can leverage cutting-edge capabilities within their applications.

Documentation Improvements

There is a clear emphasis on improving documentation through various PRs (#6820, #6339) which aim to clarify usage scenarios and provide examples for new features or integrations (e.g., Spring Boot samples). This is crucial for fostering community engagement and ensuring that users can effectively utilize the SDK's capabilities.

Observability and Monitoring Enhancements

Recent contributions also reflect a growing awareness of the need for observability within applications built using Semantic Kernel (#8280). The introduction of telemetry features will likely enhance developers' ability to monitor application performance and troubleshoot issues effectively.

Challenges with Legacy Code

The removal of legacy components (#7979) demonstrates an ongoing effort to streamline the codebase by eliminating outdated or redundant elements that may hinder future development efforts or confuse users about current capabilities.

Conclusion

Overall, the current landscape of pull requests within the Microsoft Semantic Kernel repository showcases a dynamic environment focused on continuous improvement through collaboration, technological integration, and user-centric documentation practices. The project appears well-positioned to adapt to emerging trends in AI while maintaining a strong community presence through active engagement and support mechanisms.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Contributions

  1. Evan Mattson (moonbox3)

    • Recent Activities:
    • Bumped Python project version to 1.6.0 for a release.
    • Introduced agent chat reset functionality, added unit tests and a sample.
    • Introduced agent group chat functionality, enhancing inter-agent communication.
    • Implemented the non-chat, non-streaming OpenAIAssistantAgent with samples and tests.
    • Worked on fixing the auto function invoke filter handling for OpenAI models.
  2. Caleb Kiage (calebkiage)

    • Recent Activities:
    • Added OpenAPI feature tests for Parser to validate feature support.
  3. Chris (crickman)

    • Recent Activities:
    • Supported reset functionality for AgentChat.
    • Restored ChatHistoryKernelAgent based on customer feedback.
    • Fixed ChatCompletion_FunctionTermination to utilize IAutoFunctionInvocationFilter.
  4. Eduard van Valkenburg (eavanvalkenburg)

    • Recent Activities:
    • Improved memory connectors and updated related files.
    • Introduced new vector store and collections, including Azure AI Search, Redis, Qdrant, and Volatile implementations.
  5. Sergey Menshykh

    • Recent Activities:
    • Enhanced OpenAPI parameter type mapping to support additional primitive types.
    • Updated MistralAI connector to allow auto-function invocation filters to mutate chat history.
  6. Dmytro Struk (dmytrostruk)

    • Recent Activities:
    • Bumped various package versions in .NET projects.
  7. Tao Chen (TaoChenOSU)

    • Recent Activities:
    • Integrated Anthropic Chat Completion models into the Python SDK.
  8. Mark Wallace (markwallace-microsoft)

    • Recent Activities:
    • Contributed to various enhancements and bug fixes across the .NET components.

Summary of Recent Commits

  • The team has been actively working on both Python and .NET components of the Semantic Kernel, focusing on:
    • Enhancements to agent functionalities (group chat, reset capabilities).
    • Integration of new AI models (MistralAI, Anthropic).
    • Improvements in memory management and vector store implementations.
    • Regular updates to dependencies and version bumps across both languages.

Patterns and Themes

  • There is a strong emphasis on enhancing agent capabilities, indicating a focus on improving user interaction with AI through more dynamic communication channels.
  • The team is actively integrating new AI models into the framework, reflecting a commitment to keeping the SDK up-to-date with current technologies.
  • Continuous improvements in testing practices are evident, with many commits focused on adding or updating unit tests to maintain high coverage.
  • The development process shows responsiveness to community feedback, particularly in restoring features that users find valuable.

Conclusions

The development team is engaged in a robust cycle of feature enhancement, integration of new technologies, and maintenance of code quality through testing. Their collaborative efforts are directed towards making the Semantic Kernel a versatile tool for developers looking to leverage AI capabilities effectively.