cline, 5ire로 어셈블리 분석작업 mcp를 qwen3(30b moe, 32b), 젬마3 27b qat로 굴려보는데 진짜 똑같은 툴을 연속으로 20번씩 호출하는거 보고 포기했음. 해봤자 3스텝밖에 못나감.
혹시 뭐 제가 잘못사용하고 있는건가요? 아니면 클로드 맥스 요금제를 쓰면 한방에 해결되나요?(모델 능지이슈인가요)
댓글 17
아마 바이브 코딩으로 뭐 만드려고 하는거 같네. 일단 무작정 요금제 비싼거 쓴다고 해서 바이브 코딩으로 다 만들 순 없어. 나도 로컬 llm으로 mcp 호출에 대한 고민을 굉장히 많이 했어서 어떤 고민을 하고 있는지 알 거 같음. 근데 일단 gemma3는 답이 없고, qwen3으로 접근해야하는데, 보통 이런 AI Agent를 만들 때 ReAct패턴이란걸 사용하게 돼. ReAct는 간단히 설명하자면 이전의 히스토리를 싹 다 다시 넣어주는 형태라 프롬프트가 매우 길어지게 되고 성능이 떨어지는 로컬 llm은 이런 상황에서 컨텍스트 파악을 못하고 재귀에 빠지게 돼.
ㅇㅇ 1(183.96)2025-05-19 05:15
그래서 이걸 해결하고자 해서 알아보다가 ReWOO 패턴이라는게 있더라. 그래서 이걸 적용+응용 최적화해서 Qwen3 1.7b모델로 간단한 문서 작업까지 하는 걸 성공했거든? 여기에 깃헙 주소 공유해도 되는지 모르겠는데 (안되면 자르겠지 알아서) https://github.com/Nhahan/mcp-agent 이거 내 깃헙 레포인데, 아직 리드미를 업뎃 다 안해놔서 사용법이 자세하게 나와있진 않은데 사용 방법은 cline에 넣고 이 프로젝트 .env 세팅법 및 실행 방법 알려달라고 하면 해줄거임.
ㅇㅇ 1(183.96)2025-05-19 05:17
답글
Qwen3 1.7b로 성공했단 뜻은, 그 상위 모델은 얼마든지 가능하단 뜻이라 적당히 Qwen3 8b 정도만 써줘도 될 거야. 내 레포도 완벽한 건 아닐테니 더 개선해보든가 하는건 해보든가... 아예 쌩으로 시작하는 것보단 나을거임.
ㅇㅇ 1(183.96)2025-05-19 05:18
답글
지금 이 레포에 있는 Overview 외엔 최신화가 안되어있어서 cline에서 어케 생겨먹은 프로젝트인지 분석 한 번 맡기고 하는게 좋을거임
ㅇㅇ 1(183.96)2025-05-19 05:19
걍 클로드맥스를 쓰면 안됨? 왜 굳이 로컬로함
익명(shore1232)2025-05-19 05:20
답글
로컬에서 가능한지 환경 테스트 용이고 실사용 가능하다면 남발하기 위함이죠 뭐. 그러다 진짜 빛을 볼거같으면 클맥스같은거 쓸듯.
콜라조무사(tkatjdrhdghkrnr123)2025-05-19 05:26
안되는 이유의 핵심은 '로컬 llm은 생각보다 많이 멍청하다'임... 그래서 이 멍청함을 어떻게 해결해줄 것인가에 초점을 맞춰야해. chagpt나 claude 같은 llm 서비스 들은 파라미터가 수백B 단위라 로컬llm으로 비빌 수 없는 차원의 벽이 하나 존재하는거라 이 부분을 해결해야한단 뜻
그냥 러프하게 생각해보자면, 내가 쓴 방법인데 무조건 mcp tool desc.ription을 싹 다 넣어주는 형태보다는, 먼저 나같은 경우 내 플젝 기준 tool filter라는 노드(랭체인)에서 llm에게 현재 상황에서 필요할 것 같은 mcp 도구들을 먼저 추출하게 하고, 그 추출한 mcp 도구들만 정리해서 넘겨주는 형태로 하면 프롬프트량을 획기적으로 줄일 수 있었어.
ㅇㅇ 1(183.96)2025-05-19 05:33
답글
무조건 ReWOO 패턴에 대해서 한 번 알아보고(ai에게 질문해보는 정도로 충분할듯?), 기드라mcp가 뭔진 모르겠지만, 실제 실행단계에서 프롬프트량을 어떻게 하면 llm에게 최소화해서 전달할 수 있을까에 대한 고민을 해보는게 가장 좋을거임. 결국 로컬 llm의 문제는 성능이 떨어지는 만큼 프롬프트량이 거대해지면 못알아먹는 것 때문이라. Qwen3 8B 정도면 내 생각에 웬만한 작업은 다 할 수 있음(거의 Gemini 2.0 Flash급 성능 나옴)
ㅇㅇ 1(183.96)2025-05-19 05:35
답글
Gemini2.0 Flash하고의 차이는 절대적인 받아들일 수 있는 컨텍스트의 차이밖에 없다고 생각하고 Qwen3의 성능은 충분하다는 가정 하에 프롬프트 량만 잘 컨트롤해바
ㅇㅇ 1(183.96)2025-05-19 05:36
답글
그리고 방금 생각났는데, 마지막으로 랭체인+랭그래프로 직접 구축하는걸 추천하는데 왜냐하면 지금 하려고 하는게 보니가 기드라MCP라는것만 사용하면 되는 상황인거잖아. 그럼 이 MCP에 특화된 랭그래프 코드를 짜면 될 거 가틈. 모든 mcp를 제너럴하게 사용할 수 있게 하는 AI Agent를 만드는게 어려운거지, 특정 MCP만 딱 활용할 수 있게 하는건 상대적으로 훨씬 난이도가 쉬워. 왜냐하면 그 MCP만을 위한 하드코딩이 가능해지기 때문임. 내가 제시한 키워드들 조합하면 바이브 코딩 금방 뚝딱할듯? 트라이 ㄱㄱ
ㅇㅇ 1(183.96)2025-05-19 05:44
답글
감삼다. 한번 공부해볼게요.
콜라조무사(tkatjdrhdghkrnr123)2025-05-19 06:00
왜냐면 mcp에는 tool descri.ption이라고 그 mcp에 있는 tool들이 어떤 도구인지 설명서가 있는데 이 설명서를 어찌되었든 ai에게 설명을 해주는 형태라 진짜 말도 안되게 커다란 프롬프트가 ai에게 넘어가게 돼. 그래서 desktop-commander 같은 mcp 같은 거 붙이면 이것만으로도 사용자가 넣은 프롬프트 양보다 훨씬 초과하는 프롬프트가 tool desc.ription으로 인해 ai에게 폭탄처럼 쏟아져. mcp를 붙이면 프롬프트량이 너무 거대해지니 ai가 전혀 알아먹질 못하게 되는거임. mcp 쓸 때 ai한테 어떤 프롬프트가 실제로 들어가게 되는지 한 번 확인해보면 이해가 쉬울것... 꼭 필요한 mcp만 붙여서 써야하고 claude나 gemini로 mcp 쓸 때 처럼
ㅇㅇ 1(183.96)2025-05-19 05:25
답글
mcp 막 10개 이렇게 붙이면 프롬프트가 기하급수적으로 늘어나서 답도 없게 돼. 로컬 llm으로 mcp돌릴 때는 꼭 필요한 mcp만 넣어서 프롬프트량을 최소화하는 것도 하나의 방법이지
아마 바이브 코딩으로 뭐 만드려고 하는거 같네. 일단 무작정 요금제 비싼거 쓴다고 해서 바이브 코딩으로 다 만들 순 없어. 나도 로컬 llm으로 mcp 호출에 대한 고민을 굉장히 많이 했어서 어떤 고민을 하고 있는지 알 거 같음. 근데 일단 gemma3는 답이 없고, qwen3으로 접근해야하는데, 보통 이런 AI Agent를 만들 때 ReAct패턴이란걸 사용하게 돼. ReAct는 간단히 설명하자면 이전의 히스토리를 싹 다 다시 넣어주는 형태라 프롬프트가 매우 길어지게 되고 성능이 떨어지는 로컬 llm은 이런 상황에서 컨텍스트 파악을 못하고 재귀에 빠지게 돼.
그래서 이걸 해결하고자 해서 알아보다가 ReWOO 패턴이라는게 있더라. 그래서 이걸 적용+응용 최적화해서 Qwen3 1.7b모델로 간단한 문서 작업까지 하는 걸 성공했거든? 여기에 깃헙 주소 공유해도 되는지 모르겠는데 (안되면 자르겠지 알아서)
https://github.com/Nhahan/mcp-agent
이거 내 깃헙 레포인데, 아직 리드미를 업뎃 다 안해놔서 사용법이 자세하게 나와있진 않은데 사용 방법은 cline에 넣고 이 프로젝트 .env 세팅법 및 실행 방법 알려달라고 하면 해줄거임.
Qwen3 1.7b로 성공했단 뜻은, 그 상위 모델은 얼마든지 가능하단 뜻이라 적당히 Qwen3 8b 정도만 써줘도 될 거야. 내 레포도 완벽한 건 아닐테니 더 개선해보든가 하는건 해보든가... 아예 쌩으로 시작하는 것보단 나을거임.
지금 이 레포에 있는 Overview 외엔 최신화가 안되어있어서 cline에서 어케 생겨먹은 프로젝트인지 분석 한 번 맡기고 하는게 좋을거임
걍 클로드맥스를 쓰면 안됨? 왜 굳이 로컬로함
로컬에서 가능한지 환경 테스트 용이고 실사용 가능하다면 남발하기 위함이죠 뭐. 그러다 진짜 빛을 볼거같으면 클맥스같은거 쓸듯.
안되는 이유의 핵심은 '로컬 llm은 생각보다 많이 멍청하다'임... 그래서 이 멍청함을 어떻게 해결해줄 것인가에 초점을 맞춰야해. chagpt나 claude 같은 llm 서비스 들은 파라미터가 수백B 단위라 로컬llm으로 비빌 수 없는 차원의 벽이 하나 존재하는거라 이 부분을 해결해야한단 뜻
와오.. 방금 간단히 읽어보고 왔는데 조금 어렵긴하네요. 그래서 질문좀 드려보자면 제가 쓰는게 ghidra_mcp거든요. 리버싱이에요. 그럼 저걸 기드라mcp랑 어떻게 연동시키면 될까요?
https://github.com/LaurieWired/GhidraMCP
그냥 러프하게 생각해보자면, 내가 쓴 방법인데 무조건 mcp tool desc.ription을 싹 다 넣어주는 형태보다는, 먼저 나같은 경우 내 플젝 기준 tool filter라는 노드(랭체인)에서 llm에게 현재 상황에서 필요할 것 같은 mcp 도구들을 먼저 추출하게 하고, 그 추출한 mcp 도구들만 정리해서 넘겨주는 형태로 하면 프롬프트량을 획기적으로 줄일 수 있었어.
무조건 ReWOO 패턴에 대해서 한 번 알아보고(ai에게 질문해보는 정도로 충분할듯?), 기드라mcp가 뭔진 모르겠지만, 실제 실행단계에서 프롬프트량을 어떻게 하면 llm에게 최소화해서 전달할 수 있을까에 대한 고민을 해보는게 가장 좋을거임. 결국 로컬 llm의 문제는 성능이 떨어지는 만큼 프롬프트량이 거대해지면 못알아먹는 것 때문이라. Qwen3 8B 정도면 내 생각에 웬만한 작업은 다 할 수 있음(거의 Gemini 2.0 Flash급 성능 나옴)
Gemini2.0 Flash하고의 차이는 절대적인 받아들일 수 있는 컨텍스트의 차이밖에 없다고 생각하고 Qwen3의 성능은 충분하다는 가정 하에 프롬프트 량만 잘 컨트롤해바
그리고 방금 생각났는데, 마지막으로 랭체인+랭그래프로 직접 구축하는걸 추천하는데 왜냐하면 지금 하려고 하는게 보니가 기드라MCP라는것만 사용하면 되는 상황인거잖아. 그럼 이 MCP에 특화된 랭그래프 코드를 짜면 될 거 가틈. 모든 mcp를 제너럴하게 사용할 수 있게 하는 AI Agent를 만드는게 어려운거지, 특정 MCP만 딱 활용할 수 있게 하는건 상대적으로 훨씬 난이도가 쉬워. 왜냐하면 그 MCP만을 위한 하드코딩이 가능해지기 때문임. 내가 제시한 키워드들 조합하면 바이브 코딩 금방 뚝딱할듯? 트라이 ㄱㄱ
감삼다. 한번 공부해볼게요.
왜냐면 mcp에는 tool descri.ption이라고 그 mcp에 있는 tool들이 어떤 도구인지 설명서가 있는데 이 설명서를 어찌되었든 ai에게 설명을 해주는 형태라 진짜 말도 안되게 커다란 프롬프트가 ai에게 넘어가게 돼. 그래서 desktop-commander 같은 mcp 같은 거 붙이면 이것만으로도 사용자가 넣은 프롬프트 양보다 훨씬 초과하는 프롬프트가 tool desc.ription으로 인해 ai에게 폭탄처럼 쏟아져. mcp를 붙이면 프롬프트량이 너무 거대해지니 ai가 전혀 알아먹질 못하게 되는거임. mcp 쓸 때 ai한테 어떤 프롬프트가 실제로 들어가게 되는지 한 번 확인해보면 이해가 쉬울것... 꼭 필요한 mcp만 붙여서 써야하고 claude나 gemini로 mcp 쓸 때 처럼
mcp 막 10개 이렇게 붙이면 프롬프트가 기하급수적으로 늘어나서 답도 없게 돼. 로컬 llm으로 mcp돌릴 때는 꼭 필요한 mcp만 넣어서 프롬프트량을 최소화하는 것도 하나의 방법이지
맞아요. 기드라에서 함수 리스트 한번 뽑으면 텍스트가 산더미긴해요.
배워갑니다.