feat: Rename Agent Context Protocols
This commit is contained in:
parent
9b662168ff
commit
731355d110
|
|
@ -60,7 +60,7 @@ public abstract class AgentHookBase : IAgentHook
|
|||
|
||||
}
|
||||
|
||||
public virtual void OnAgentMCPLoaded(Agent agent)
|
||||
public virtual void OnAgentCPLoaded(Agent agent)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public enum AgentField
|
|||
Sample,
|
||||
LlmConfig,
|
||||
Utility,
|
||||
Mcp,
|
||||
Acp,
|
||||
KnowledgeBase,
|
||||
Rule,
|
||||
MaxMessageCount
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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() ?? []
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue