feat: Rename Agent Context Protocols

This commit is contained in:
geffzhang 2025-02-24 09:04:44 +08:00
parent 9b662168ff
commit 731355d110
15 changed files with 66 additions and 66 deletions

View file

@ -60,7 +60,7 @@ public abstract class AgentHookBase : IAgentHook
}
public virtual void OnAgentMCPLoaded(Agent agent)
public virtual void OnAgentCPLoaded(Agent agent)
{
}

View file

@ -19,7 +19,7 @@ public enum AgentField
Sample,
LlmConfig,
Utility,
Mcp,
Acp,
KnowledgeBase,
Rule,
MaxMessageCount

View file

@ -27,7 +27,7 @@ public interface IAgentHook
void OnAgentUtilityLoaded(Agent agent);
void OnAgentMCPLoaded(Agent agent);
void OnAgentCPLoaded(Agent agent);
/// <summary>
/// Triggered when agent is loaded completely.

View file

@ -106,7 +106,7 @@ public class Agent
/// <summary>
/// Agent MCP
/// </summary>
public List<AgentMCP> Mcps { get; set; } = new();
public List<AgentCP> Acps { get; set; } = new();
/// <summary>
/// Agent rules
@ -161,7 +161,7 @@ public class Agent
Responses = agent.Responses,
Samples = agent.Samples,
Utilities = agent.Utilities,
Mcps = agent.Mcps,
Acps = agent.Acps,
Knowledges = agent.Knowledges,
IsPublic = agent.IsPublic,
Disabled = agent.Disabled,
@ -304,9 +304,9 @@ public class Agent
return this;
}
public Agent SetMcps(List<AgentMCP> mcps)
public Agent SetMcps(List<AgentCP> mcps)
{
Mcps = mcps ?? [];
Acps = mcps ?? [];
return this;
}
}

View file

@ -1,6 +1,6 @@
namespace BotSharp.Abstraction.Agents.Models;
public class AgentMCP
public class AgentCP
{
public string Name { get; set; }
@ -8,18 +8,18 @@ public class AgentMCP
public bool Disabled { get; set; }
public IEnumerable<MCPFunction> Functions { get; set; } = [];
public IEnumerable<MCPTemplate> Templates { get; set; } = [];
public IEnumerable<ACPFunction> Functions { get; set; } = [];
public IEnumerable<ACPTemplate> Templates { get; set; } = [];
public AgentMCP()
public AgentCP()
{
}
public AgentMCP(
public AgentCP(
string name,
IEnumerable<MCPFunction>? functions = null,
IEnumerable<MCPTemplate>? templates = null)
IEnumerable<ACPFunction>? functions = null,
IEnumerable<ACPTemplate>? templates = null)
{
Name = name;
Functions = functions ?? [];
@ -33,27 +33,27 @@ public class AgentMCP
}
public class MCPFunction : MCPBase
public class ACPFunction : MCPBase
{
public MCPFunction()
public ACPFunction()
{
}
public MCPFunction(string name)
public ACPFunction(string name)
{
Name = name;
}
}
public class MCPTemplate : MCPBase
public class ACPTemplate : MCPBase
{
public MCPTemplate()
public ACPTemplate()
{
}
public MCPTemplate(string name)
public ACPTemplate(string name)
{
Name = name;
}

View file

@ -42,7 +42,7 @@ public class BasicAgentHook : AgentHookBase
}
}
public override void OnAgentMCPLoaded(Agent agent)
public override void OnAgentCPLoaded(Agent agent)
{
if (agent.Type == AgentType.Routing)
return;
@ -53,9 +53,9 @@ public class BasicAgentHook : AgentHookBase
agent.SecondaryFunctions ??= [];
agent.SecondaryInstructions ??= [];
agent.Mcps ??= [];
agent.Acps ??= [];
var (functions, templates) = GetMCPContent(agent);
var (functions, templates) = GetACPContent(agent);
foreach (var fn in functions)
{
@ -116,12 +116,12 @@ public class BasicAgentHook : AgentHookBase
return (functionNames, templateNames);
}
private (IEnumerable<FunctionDef>, IEnumerable<string>) GetMCPContent(Agent agent)
private (IEnumerable<FunctionDef>, IEnumerable<string>) GetACPContent(Agent agent)
{
List<FunctionDef> functionDefs = new List<FunctionDef>();
IEnumerable<string> templates = new List<string>();
var mcpClientManager = _services.GetRequiredService<MCPClientManager>();
var mcps = agent.Mcps;
var mcps = agent.Acps;
foreach (var item in mcps)
{
var ua = mcpClientManager.Factory.GetClientAsync(item.ServerId).Result;

View file

@ -72,9 +72,9 @@ public partial class AgentService
hook.OnAgentUtilityLoaded(agent);
}
if(agent.Mcps != null)
if(agent.Acps != null)
{
hook.OnAgentMCPLoaded(agent);
hook.OnAgentCPLoaded(agent);
}
hook.OnAgentLoaded(agent);

View file

@ -40,7 +40,7 @@ public partial class AgentService
record.Responses = agent.Responses ?? [];
record.Samples = agent.Samples ?? [];
record.Utilities = agent.Utilities ?? [];
record.Mcps = agent.Mcps ?? [];
record.Acps = agent.Acps ?? [];
record.KnowledgeBases = agent.KnowledgeBases ?? [];
record.Rules = agent.Rules ?? [];
if (agent.LlmConfig != null && !agent.LlmConfig.IsInherit)
@ -107,7 +107,7 @@ public partial class AgentService
.SetResponses(foundAgent.Responses)
.SetSamples(foundAgent.Samples)
.SetUtilities(foundAgent.Utilities)
.SetMcps(foundAgent.Mcps)
.SetMcps(foundAgent.Acps)
.SetKnowledgeBases(foundAgent.KnowledgeBases)
.SetRules(foundAgent.Rules)
.SetLlmConfig(foundAgent.LlmConfig);

View file

@ -60,8 +60,8 @@ namespace BotSharp.Core.Repository
case AgentField.Utility:
UpdateAgentUtilities(agent.Id, agent.MergeUtility, agent.Utilities);
break;
case AgentField.Mcp:
UpdateAgentMcp(agent.Id, agent.Mcps);
case AgentField.Acp:
UpdateAgentCP(agent.Id, agent.Acps);
break;
case AgentField.KnowledgeBase:
UpdateAgentKnowledgeBases(agent.Id, agent.KnowledgeBases);
@ -194,7 +194,7 @@ namespace BotSharp.Core.Repository
File.WriteAllText(agentFile, json);
}
private void UpdateAgentMcp(string agentId, List<AgentMCP> mcps)
private void UpdateAgentCP(string agentId, List<AgentCP> mcps)
{
if (mcps == null) return;
@ -202,7 +202,7 @@ namespace BotSharp.Core.Repository
if (agent == null) return;
agent.Mcps = mcps;
agent.Acps = mcps;
agent.UpdatedDateTime = DateTime.UtcNow;
var json = JsonSerializer.Serialize(agent, _options);
File.WriteAllText(agentFile, json);
@ -377,7 +377,7 @@ namespace BotSharp.Core.Repository
agent.Profiles = inputAgent.Profiles;
agent.Labels = inputAgent.Labels;
agent.Utilities = inputAgent.Utilities;
agent.Mcps = inputAgent.Mcps;
agent.Acps = inputAgent.Acps;
agent.KnowledgeBases = inputAgent.KnowledgeBases;
agent.RoutingRules = inputAgent.RoutingRules;
agent.Rules = inputAgent.Rules;

View file

@ -55,7 +55,7 @@ public class AgentCreationModel
public int? MaxMessageCount { get; set; }
public List<AgentUtility> Utilities { get; set; } = new();
public List<AgentMCP> Mcps { get; set; } = new();
public List<AgentCP> Acps { get; set; } = new();
public List<RoutingRuleUpdateModel> RoutingRules { get; set; } = new();
public List<AgentKnowledgeBase> KnowledgeBases { get; set; } = new();
public List<AgentRule> Rules { get; set; } = new();
@ -74,7 +74,7 @@ public class AgentCreationModel
Responses = Responses,
Samples = Samples,
Utilities = Utilities,
Mcps = Mcps,
Acps = Acps,
IsPublic = IsPublic,
Type = Type,
Disabled = Disabled,

View file

@ -40,9 +40,9 @@ public class AgentUpdateModel
public List<AgentUtility>? Utilities { get; set; }
/// <summary>
/// Mcps
/// Acps
/// </summary>
public List<AgentMCP>? Mcps { get; set; }
public List<AgentCP>? Acps { get; set; }
/// <summary>
/// knowledge bases
@ -108,7 +108,7 @@ public class AgentUpdateModel
Functions = Functions ?? [],
Responses = Responses ?? [],
Utilities = Utilities ?? [],
Mcps = Mcps ?? [],
Acps = Acps ?? [],
KnowledgeBases = KnowledgeBases ?? [],
Rules = Rules ?? [],
LlmConfig = LlmConfig ?? new()

View file

@ -24,7 +24,7 @@ public class AgentViewModel
[JsonPropertyName("merge_utility")]
public bool MergeUtility { get; set; }
public List<AgentUtility> Utilities { get; set; }
public List<AgentMCP> Mcps { get; set; }
public List<AgentCP> Acps { get; set; }
[JsonPropertyName("knowledge_bases")]
public List<AgentKnowledgeBase> KnowledgeBases { get; set; }
@ -87,7 +87,7 @@ public class AgentViewModel
Responses = agent.Responses ?? [],
Samples = agent.Samples ?? [],
Utilities = agent.Utilities ?? [],
Mcps = agent.Mcps ?? [],
Acps = agent.Acps ?? [],
KnowledgeBases = agent.KnowledgeBases ?? [],
IsPublic= agent.IsPublic,
Disabled = agent.Disabled,

View file

@ -18,7 +18,7 @@ public class AgentDocument : MongoBase
public List<AgentResponseMongoElement> Responses { get; set; }
public List<string> Samples { get; set; }
public List<AgentUtilityMongoElement> Utilities { get; set; }
public List<AgentMcpMongoElement> Mcps { get; set; }
public List<AgentCPMongoElement> Mcps { get; set; }
public List<AgentKnowledgeBaseMongoElement> KnowledgeBases { get; set; }
public List<string> Profiles { get; set; }
public List<string> Labels { get; set; }

View file

@ -8,64 +8,64 @@ using System.Threading.Tasks;
namespace BotSharp.Plugin.MongoStorage.Models;
[BsonIgnoreExtraElements(Inherited = true)]
public class AgentMcpMongoElement
public class AgentCPMongoElement
{
public string Name { get; set; }
public string ServerId { get; set; }
public bool Disabled { get; set; }
public List<McpFunctionMongoElement> Functions { get; set; } = [];
public List<McpTemplateMongoElement> Templates { get; set; } = [];
public List<AcpFunctionMongoElement> Functions { get; set; } = [];
public List<AcpTemplateMongoElement> Templates { get; set; } = [];
public static AgentMcpMongoElement ToMongoElement(AgentMCP utility)
public static AgentCPMongoElement ToMongoElement(AgentCP utility)
{
return new AgentMcpMongoElement
return new AgentCPMongoElement
{
Name = utility.Name,
Disabled = utility.Disabled,
Functions = utility.Functions?.Select(x => new McpFunctionMongoElement(x.Name))?.ToList() ?? [],
Templates = utility.Templates?.Select(x => new McpTemplateMongoElement(x.Name))?.ToList() ?? []
Functions = utility.Functions?.Select(x => new AcpFunctionMongoElement(x.Name))?.ToList() ?? [],
Templates = utility.Templates?.Select(x => new AcpTemplateMongoElement(x.Name))?.ToList() ?? []
};
}
public static AgentMCP ToDomainElement(AgentMcpMongoElement utility)
public static AgentCP ToDomainElement(AgentCPMongoElement utility)
{
return new AgentMCP
return new AgentCP
{
Name = utility.Name,
Disabled = utility.Disabled,
Functions = utility.Functions?.Select(x => new MCPFunction(x.Name))?.ToList() ?? [],
Templates = utility.Templates?.Select(x => new MCPTemplate(x.Name))?.ToList() ?? []
Functions = utility.Functions?.Select(x => new ACPFunction(x.Name))?.ToList() ?? [],
Templates = utility.Templates?.Select(x => new ACPTemplate(x.Name))?.ToList() ?? []
};
}
}
public class McpFunctionMongoElement
public class AcpFunctionMongoElement
{
public string Name { get; set; }
public McpFunctionMongoElement()
public AcpFunctionMongoElement()
{
}
public McpFunctionMongoElement(string name)
public AcpFunctionMongoElement(string name)
{
Name = name;
}
}
public class McpTemplateMongoElement
public class AcpTemplateMongoElement
{
public string Name { get; set; }
public McpTemplateMongoElement()
public AcpTemplateMongoElement()
{
}
public McpTemplateMongoElement(string name)
public AcpTemplateMongoElement(string name)
{
Name = name;
}

View file

@ -61,8 +61,8 @@ public partial class MongoRepository
case AgentField.Utility:
UpdateAgentUtilities(agent.Id, agent.MergeUtility, agent.Utilities);
break;
case AgentField.Mcp:
UpdateAgentMcps(agent.Id, agent.Mcps);
case AgentField.Acp:
UpdateAgentMcps(agent.Id, agent.Acps);
break;
case AgentField.KnowledgeBase:
UpdateAgentKnowledgeBases(agent.Id, agent.KnowledgeBases);
@ -264,11 +264,11 @@ public partial class MongoRepository
_dc.Agents.UpdateOne(filter, update);
}
private void UpdateAgentMcps(string agentId, List<AgentMCP> mcps)
private void UpdateAgentMcps(string agentId, List<AgentCP> mcps)
{
if (mcps == null) return;
var elements = mcps?.Select(x => AgentMcpMongoElement.ToMongoElement(x))?.ToList() ?? [];
var elements = mcps?.Select(x => AgentCPMongoElement.ToMongoElement(x))?.ToList() ?? [];
var filter = Builders<AgentDocument>.Filter.Eq(x => x.Id, agentId);
var update = Builders<AgentDocument>.Update
@ -346,7 +346,7 @@ public partial class MongoRepository
.Set(x => x.Responses, agent.Responses.Select(r => AgentResponseMongoElement.ToMongoElement(r)).ToList())
.Set(x => x.Samples, agent.Samples)
.Set(x => x.Utilities, agent.Utilities.Select(u => AgentUtilityMongoElement.ToMongoElement(u)).ToList())
.Set(x => x.Mcps, agent.Mcps.Select(u => AgentMcpMongoElement.ToMongoElement(u)).ToList())
.Set(x => x.Mcps, agent.Acps.Select(u => AgentCPMongoElement.ToMongoElement(u)).ToList())
.Set(x => x.KnowledgeBases, agent.KnowledgeBases.Select(u => AgentKnowledgeBaseMongoElement.ToMongoElement(u)).ToList())
.Set(x => x.Rules, agent.Rules.Select(e => AgentRuleMongoElement.ToMongoElement(e)).ToList())
.Set(x => x.LlmConfig, AgentLlmConfigMongoElement.ToMongoElement(agent.LlmConfig))
@ -527,7 +527,7 @@ public partial class MongoRepository
Responses = x.Responses?.Select(r => AgentResponseMongoElement.ToMongoElement(r))?.ToList() ?? [],
RoutingRules = x.RoutingRules?.Select(r => RoutingRuleMongoElement.ToMongoElement(r))?.ToList() ?? [],
Utilities = x.Utilities?.Select(u => AgentUtilityMongoElement.ToMongoElement(u))?.ToList() ?? [],
Mcps = x.Mcps?.Select(u => AgentMcpMongoElement.ToMongoElement(u))?.ToList() ?? [],
Mcps = x.Acps?.Select(u => AgentCPMongoElement.ToMongoElement(u))?.ToList() ?? [],
KnowledgeBases = x.KnowledgeBases?.Select(k => AgentKnowledgeBaseMongoElement.ToMongoElement(k))?.ToList() ?? [],
Rules = x.Rules?.Select(e => AgentRuleMongoElement.ToMongoElement(e))?.ToList() ?? [],
CreatedTime = x.CreatedDateTime,
@ -622,7 +622,7 @@ public partial class MongoRepository
Responses = agentDoc.Responses?.Select(r => AgentResponseMongoElement.ToDomainElement(r))?.ToList() ?? [],
RoutingRules = agentDoc.RoutingRules?.Select(r => RoutingRuleMongoElement.ToDomainElement(agentDoc.Id, agentDoc.Name, r))?.ToList() ?? [],
Utilities = agentDoc.Utilities?.Select(u => AgentUtilityMongoElement.ToDomainElement(u))?.ToList() ?? [],
Mcps = agentDoc.Mcps?.Select(u => AgentMcpMongoElement.ToDomainElement(u))?.ToList() ?? [],
Acps = agentDoc.Mcps?.Select(u => AgentCPMongoElement.ToDomainElement(u))?.ToList() ?? [],
KnowledgeBases = agentDoc.KnowledgeBases?.Select(x => AgentKnowledgeBaseMongoElement.ToDomainElement(x))?.ToList() ?? [],
Rules = agentDoc.Rules?.Select(e => AgentRuleMongoElement.ToDomainElement(e))?.ToList() ?? []
};