Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

argon-go

golang pkg.go.dev MIT

[氩-Argon] AI 智能助手开发库|Assistant Development Kit (ADK) for Go

Install

go get github.com/noble-gase/argon

Usage

Normal

点击展开
package main

import (
	"github.com/noble-gase/argon"
	"github.com/noble-gase/argon/channel/dingtalk"
	"github.com/noble-gase/argon/llmchat"
	"github.com/noble-gase/argon/model/openai"
)

func main() {
	// agent
	agent := &llmchat.NormalAgent{
		Name: "iota",
		Description: "IOTA智能助手",
		Instruction: `你是一个企业内部智能助手。
## 基本规则
- 用中文回答,简洁、准确,使用 Markdown 格式
- 列表数据,请使用 Markdown 表格输出展示
- 不要凭自身知识回答问题,必须通过工具获取正确的信息
- 如果用户的问题与工具列表范围无关,请告知用户无法处理
- 结果必须全部显示,不要省略字段,更不要使用 ... 省略内容
- 遇到工具不能处理的问题,请如实告知,并让用户找「xxx」确认`,
		LLMAdapter: &llmchat.OpenAI{
			Config: openai.Config{
				APIKey: "sk-xxxxxxxxx",
				BaseURL: "https://api.deepseek.com",
				ModelName: "deepseek-v4-pro",
			},
		},
		Skills: []string{"./skills"},
	}

	// llmchat
	chat, err := argon.NewLLMChat("IOTA-Agent", db, redis, agent)
	if err != nil {
		panic(err)
	}

	// dingtalk
	cfg := &dingtalk.Config{
		ClientId: "clientId",
		ClientSecret: "clientSecret",
		CardTemplateId: "xxxxxx.schema",
	}
	assistant, err := argon.NewDingTalkAssistant(cfg, redis, chat)
	if err != nil {
		panic(err)
	}
	defer assistant.Stop()

	assistant.Start()
}

AgentTool

点击展开
package main

import (
	"github.com/noble-gase/argon"
	"github.com/noble-gase/argon/channel/dingtalk"
	"github.com/noble-gase/argon/llmchat"
	"github.com/noble-gase/argon/model/openai"
)

func main() {
	// agent
	agent := &llmchat.NormalAgent{
		Name: "iota",
		Description: "IOTA智能助手",
		Instruction: `你是一个企业内部智能助手,负责理解用户意图并将任务分发给合适的 Agent 工具。
## 基本规则
- 不要凭自身知识回答问题,必须通过 Agent 工具获取正确的信息
- 结果必须全部显示,不要省略字段,更不要使用 ... 省略内容`,
		LLMAdapter: &llmchat.OpenAI{
			Config: openai.Config{
				APIKey: "sk-xxxxxxxxx",
				BaseURL: "https://api.deepseek.com",
				ModelName: "deepseek-v4-flash",
			},
		},
		AgentTools: []llmchat.AgentToolSource{
			{
				Agent: &llmchat.NormalAgent{
					Name: "iotlink",
					Skills: []llmchat.SkillSource{
						{Path: "./skills"},
					},
					Description: "联接平台相关工具",
					Instruction: `你是一个物联网「联接平台」相关的工具集合,你可以回答 MQTT 连接相关的问题。
## 基本规则
- 用中文回答,简洁、准确,使用 Markdown 格式
- 列表数据,请使用 Markdown 表格输出展示
- 不要凭自身知识回答问题,必须通过工具获取正确的信息
- 如果用户的问题与工具列表范围无关,请告知用户无法处理
- 遇到工具不能处理的问题,请如实告知,并让用户找「xxx」确认`,
			},
		},
	}

	// llmchat
	chat, err := argon.NewLLMChat("IOTA-Agent", db, redis, agent)
	if err != nil {
		panic(err)
	}

	// dingtalk
	cfg := &dingtalk.Config{
		ClientId: "clientId",
		ClientSecret: "clientSecret",
		CardTemplateId: "xxxxxx.schema",
	}
	assistant, err := argon.NewDingTalkAssistant(cfg, redis, chat)
	if err != nil {
		panic(err)
	}
	defer assistant.Stop()

	assistant.Start()
}

About

AI 智能助手开发库

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages